最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

「MC篩種雜談1」解讀戰(zhàn)利品表,以及戰(zhàn)利品決定的原理

2023-09-22 15:14 作者:De6ris  | 我要投稿

????理解戰(zhàn)利品的生成原理不僅能知道各種結(jié)構(gòu)中箱子能開出物品的概率,期望,極限(例如古城一個箱子理論可以存在20個附魔金蘋果!但這可以斷言是不可能的),還有助于使用別人的戰(zhàn)利品預測器(第三方篩種庫),以及自己開發(fā)一些前人未覆蓋的內(nèi)容。本篇是介紹篇,之后會繼續(xù)講解如何實戰(zhàn)。

一、被戰(zhàn)利品表控制的內(nèi)容有哪些

  • 考古(1.20新增)

  • 方塊破壞

  • 箱子戰(zhàn)利品

  • 實體被殺死

  • 游戲玩法(釣魚,村莊英雄,貓之晨禮,以物易物,嗅探獸)

二、去哪看戰(zhàn)利品表

優(yōu)點:直觀易懂

缺點:僅有最新版本的表格;wiki擅自對表格進行了排序,但我們利用程序模擬時必須使用戰(zhàn)利品表的原始順序。

  • 解壓相應版本游戲?qū)嵗械?jar文件如1.20.1.jar,訪問文件夾

其中的.json文件即為戰(zhàn)利品表。

優(yōu)點:保留了戰(zhàn)利品表的原始順序;各個版本的均可獲取。

缺點:太丑太難讀了

  • 查看mcfeature第三方篩種庫中整理好的戰(zhàn)利品表

如何找到:閱讀欣雨神的文章配置好IDEA即可

優(yōu)點:保留了戰(zhàn)利品表的原始順序,且較直觀。

缺點:僅有1.16.1版本的戰(zhàn)利品表;仍缺少部分結(jié)構(gòu)的戰(zhàn)利品表。

三、如何解讀戰(zhàn)利品表

戰(zhàn)利品表最基本的兩個要素:獎池(lootPool),獎項(lootEntry)

  • 獎池:一個戰(zhàn)利品表擁有一個或多個獎池。每個獎池具有抽獎次數(shù)(roll),這個次數(shù)可以是常數(shù),也可以由RNG(隨機數(shù)生成器)決定。每個獎池還具有若干的獎項(entry),也就是具體的物品。例如:廢棄傳送門僅有1個獎池,這個獎池的抽獎次數(shù)在4到8中隨機。埋藏的寶藏有6個獎池,其中第一個獎池只抽獎一次,且僅有一個獎項——海洋之心,這保證了每個寶藏必定含有海洋之心。

  • 獎項:每個獎項最基本的三個要素:物品(item),權(quán)重(weight),函數(shù)(function)。權(quán)重決定抽獎時被抽中的概率。權(quán)重越大,越容易被抽到。獎項被抽中后,還會進一步作用一些函數(shù),如設(shè)置數(shù)量,設(shè)置耐久,附魔。值得一提的是存在一種空獎項(emptyEntry),抽中它就相當于抽中了空氣,它存在的作用僅僅是提供無用的權(quán)重,降低獎池中其它獎項被抽中的概率。

實例:這個鏈接會跳轉(zhuǎn)到鐵匠鋪的戰(zhàn)利品表

其中,僅有一個獎池,它會進行3到8次抽獎。獎池中有若干個獎項,具有不同的權(quán)重和函數(shù)。如:鉆石獎項的權(quán)重是3,若抽中會繼續(xù)決定1到3個堆疊。

四、戰(zhàn)利品決定的原理

????每個箱子的內(nèi)容都由一個戰(zhàn)利品表種子(lootTableSeed)和戰(zhàn)利品表(lootTableSeed)完全決定。在一個固定的世界種子下,這些信息也是固定的,下期會講解對任意的世界種子,如何篩選某些坐標范圍內(nèi)是否有箱子,箱子的內(nèi)容是否符合所需?,F(xiàn)在先講解如何由lootTableSeed出發(fā),得到一整個箱子的內(nèi)容。例如,我用世界種子5464771542393817進入世界,在觀察者模式下,用F3+i查看一個從未打開過的箱子,得到如下信息:

這是一個鐵匠鋪的箱子,它的lootTableSeed就是4883865642824260284,戰(zhàn)利品表如下。

這個表格是我在mcfeature第三方篩種庫的源碼中摘錄的,大概不難看懂。

生成戰(zhàn)利品的流程:將一個隨機數(shù)生成器(記為rand)的種子設(shè)置成上述lootTableSeed,

然后考慮第一個獎池。它擁有3-8次抽獎次數(shù),那么我們對這個rand,生成6以內(nèi)的整數(shù),再加上3,即決定好了抽獎次數(shù)(結(jié)果是8)。

現(xiàn)在考慮第一次抽獎。我們注意到戰(zhàn)利品表中所有獎項的權(quán)重加起來是94,那么我們生成94以內(nèi)的整數(shù),并比對結(jié)果在哪個區(qū)間,就決定好是哪個獎項了。

注意到結(jié)果是82,這對應了黑曜石,為什么呢?

對上面提及的戰(zhàn)利品表,黑曜石在較后方,可以從末尾開始考慮。93代表鉆石馬鎧,92代表金馬鎧,91代表鐵馬鎧,88-90代表鞍,83-87代表橡樹樹苗,78-82代表黑曜石。

既然確定好是黑曜石,下面要作用函數(shù)了。很明顯,它只具有一個決定數(shù)量的函數(shù),沒有其他的函數(shù)。因為數(shù)量是3-7之間,我們使用語句

得到了7,也就是說這個獎項是7個黑曜石。第一次抽獎結(jié)束。

同樣地,繼續(xù)抽剩下的7次獎,最終8次抽獎加起來是54個黑曜石。戰(zhàn)利品生成完畢。

至此,想必你已經(jīng)完全理解了原理。雖然看起來步驟很多,但幸運的是已經(jīng)有前人幫我們寫好了程序,只要輸入lootTableSeed和lootTable,就能自動完成上述所有步驟。相關(guān)內(nèi)容我將在下期講解。此外,我認為還是有必要細講一下獎項的函數(shù)部分。

五、獎項的函數(shù)

????上面已經(jīng)出現(xiàn)過了一個函數(shù)——設(shè)置數(shù)量(setCount)。除此之外,還有以下幾種:

  • 設(shè)置損壞(applyDamage):例如出現(xiàn)在堡壘遺跡的藏寶室的寶藏箱子中。以下是路徑:

耐久不滿的鉆石裝備就由此實現(xiàn)。流程:rand.nextFloat(0.8)+0.1,其中數(shù)值視情況而定。

  • 設(shè)置隨機附魔(EnchantRandomly):大部分附魔裝備由此實現(xiàn)。先得到這件裝備可用的附魔列表(這是固定的,次序也是固定的),然后得到列表的長度,取此長度之內(nèi)的隨機數(shù),以決定附魔種類?,F(xiàn)在決定附魔等級:如果附魔僅有一級,那么跳過;否則取最高等級之內(nèi)的隨機數(shù),以決定附魔等級。例如:金鎬的可用附魔列表如下:

先使用rand.nextInt(6),假如得到3,這代表時運。然后決定等級,rand.nextInt(3),假如得到0,這代表時運的等級是1。所以金鎬的附魔就是時運1。

可見,這個函數(shù)僅會提供一項附魔魔咒,且各魔咒出現(xiàn)的概率均等。確定魔咒后,各等級的概率也均等。

  • 等級附魔(enchantWithLevels):相當于玩家在附魔臺操作一次。要塞圖書館,末地城用的都是這個函數(shù)。這可以得到多項附魔,還能開出寶藏附魔(經(jīng)驗修補等),但原理較復雜且一般篩種時不涉及這些較為游戲后期的建筑,故不詳細講解。

六、種子知識,以及簡單的概率論

????用來生成戰(zhàn)利品的隨機數(shù)生成器,是線性同余生成器(LCG)。它設(shè)置種子時,可以輸入(二進制)64位整數(shù),也就是2^64的范圍。然而,因為LCG的特性,只有后半48位生效,也就是說,只要兩個lootTableSeed的后48位相同,它們就會導出完全相同的戰(zhàn)利品??梢?,一個lootTableSeed擁有2^16=65536個姐妹種,它們有相同的戰(zhàn)利品。

????姐妹種這件事?lián)碛泻锰?,如果我們已?jīng)得到了一個神種,比如說上面舉例使用過的那個鐵匠鋪54黑曜石的lootTableSeed,那么我們相當于得到了65536個神種。

????但也有壞處,因為這導致MC中只有2^48個不同的lootTableSeed,從追求極限上來說,這是不利的。我們常常聽說一個有趣的事情,假定一只永恒的猴子隨機地敲打鍵盤,那么在無盡的歲月中,它總能敲出一部莎士比亞的著作。這就是說,盡管概率很小,但只要嘗試次數(shù)無限,它總能發(fā)生一次。然而,我們的lootTableSeed卻從2^64減少到2^48個,因此許多小概率事件變得更加無法發(fā)生了。例如,鐵匠鋪箱子理論最多有56個黑曜石,其概率是

%5Cfrac%7B1%7D%7B6%7D%5Ctimes%20%5Cleft(%20%5Cfrac%7B5%7D%7B94%7D%5Ctimes%20%5Cfrac%7B1%7D%7B5%7D%20%5Cright)%20%5E8%3D2.73417%5Ctimes%2010%5E%7B-17%7D

再乘以我們的樣本空間大小有

%5Cfrac%7B1%7D%7B6%7D%5Ctimes%20%5Cleft(%20%5Cfrac%7B5%7D%7B94%7D%5Ctimes%20%5Cfrac%7B1%7D%7B5%7D%20%5Cright)%20%5E8%5Ctimes%202%5E%7B48%7D%3D0.00769601%0A

這個數(shù)字遠小于1,基本上可以認為不可能了;事實上,我們通過某些方法也證明了確實不存在這樣的lootTableSeed。

七、有趣的課后習題

????翻閱wiki相關(guān)頁面,解答如下問題。

  1. 一把金鎬,在設(shè)置隨機附魔(EnchantRandomly)時,得到效率5的概率

  2. 為什么說20附魔金蘋果的古城箱子是不存在的

  3. 預測一個廢棄傳送門的箱子,有6個附魔金蘋果的可能性

  4. 為什么橋類型的堡壘遺跡必出一個磁石

  5. mojang在1.20更新中,為許多結(jié)構(gòu)增加了鍛造模板的戰(zhàn)利品,而不影響原有的戰(zhàn)利品,這是怎么實現(xiàn)的

「MC篩種雜談1」解讀戰(zhàn)利品表,以及戰(zhàn)利品決定的原理的評論 (共 條)

分享到微博請遵守國家法律
北安市| 灵川县| 台南县| 营山县| 西藏| 朝阳市| 班玛县| 乌审旗| 嫩江县| 九龙城区| 同心县| 离岛区| 静宁县| 开江县| 重庆市| 德保县| 万宁市| 宁强县| 大新县| 仪陇县| 柳林县| 西吉县| 普定县| 政和县| 工布江达县| 眉山市| 基隆市| 玉林市| 普兰店市| 西乡县| 板桥市| 鹤峰县| 苏尼特左旗| 五台县| 三台县| 池州市| 义马市| 临猗县| 武冈市| 林芝县| 井陉县|