處理時(shí)間與刷怪效率
????????在上個(gè)專欄,我提出了一個(gè)解決對(duì)刷怪塔定量分析的想法,現(xiàn)在我將繼續(xù)推進(jìn)我的想法。今天,我要嘗試解決處理時(shí)間與刷怪效率的關(guān)系。
????????這篇專欄,只建立在三個(gè)基本的條件下:
①每區(qū)塊每gt有11/2000概率進(jìn)行生成嘗試。
②生物在進(jìn)行生成的時(shí)候會(huì)檢測(cè)周圍9x9區(qū)塊范圍內(nèi)的自然生物(凋零和指令召喚的除外)是否達(dá)到上限,達(dá)到上限則不生成。
????P.S. 這里我假設(shè)每次生成嘗試都能成功生成8個(gè)怪物。
③洞穴的物種生成上限是8。
????????這些基本條件來(lái)自君君和mcwiki。那么讓我們開(kāi)始吧。
PartⅠ 理想化分析
????????理想化分析總是對(duì)一個(gè)物體進(jìn)行分析的第一步,我一開(kāi)始也是這樣。
????????既然每區(qū)塊每gt有11/2000概率進(jìn)行生成嘗試,模擬6滿效率刷怪塔有61個(gè)區(qū)塊,那么平均每2000/671=2.981gt就有一個(gè)區(qū)塊進(jìn)行生成嘗試。為了方便闡述,我這里先用3gt代替這個(gè)2.981gt。
????????在此基礎(chǔ)上,我得出了一個(gè)反常的結(jié)論:處理時(shí)間對(duì)刷怪效率的影響是不連續(xù)的。處理時(shí)間每3gt內(nèi),對(duì)刷怪效率沒(méi)有影響。為了解釋這一結(jié)論的由來(lái),我將2gt處理與4gt處理為例子,將它們畫在一維時(shí)間軸上分析。


????????可以看出,在2gt處理中,每次進(jìn)行生成嘗試時(shí),上次生成的怪物已經(jīng)被處理掉了;但是在4gt處理中,每次進(jìn)行生成嘗試時(shí),都還有一次殘留的怪物未被處理(假設(shè)一次生成中的怪物全部同時(shí)被處理)。那么在2gt處理中,每次生成嘗試都不會(huì)受密度檢測(cè)的影響;而4gt處理中,每次生成嘗試都可能會(huì)受上次生成的怪物而密度檢測(cè)不通過(guò)。通過(guò)程序的枚舉計(jì)算,可以得出這次生成嘗試成功的概率約為21.9621%。
????????同理可得,7gt處理中,每次進(jìn)行生成嘗試時(shí),都還有兩次殘留的怪物未被處理,每次生成嘗試都可能會(huì)受上次和上上次生成的怪物而密度檢測(cè)不通過(guò)。而且每次生成嘗試的間隔都是3gt,所以無(wú)論處理得有多快,生成嘗試的速度都沒(méi)有影響。通過(guò)程序的枚舉計(jì)算,可以得出如下結(jié)論。


但是,這個(gè)結(jié)論明顯與實(shí)際情況不符。那究竟是什么導(dǎo)致處理時(shí)間影響刷怪效率呢?
PartⅡ 概率分析
????????問(wèn)題的關(guān)鍵在于實(shí)際情況與假設(shè)不符,并不是每次生成嘗試的間隔都是3gt的。事實(shí)上,它們?cè)诿總€(gè)gt的上的概率都是均勻的,只不過(guò)宏觀上等效與每3gt進(jìn)行一次生成嘗試。
????????如果是這樣的話,完全可能會(huì)因?yàn)殡S機(jī)的分布而產(chǎn)生更多的重疊,這樣就會(huì)造成效率損失。那能不能產(chǎn)生效率增加來(lái)彌補(bǔ)損失呢?很難,因?yàn)橐恳淮紊啥寂惨稽c(diǎn)才能擠出塞下多一次生成的時(shí)間。我把不會(huì)造成損失的移動(dòng)空間稱為容錯(cuò)量,如圖。

????????不難看出,容錯(cuò)量與處理時(shí)間是呈一次負(fù)正比的,而容錯(cuò)量又和刷怪效率呈一次正比,所以處理時(shí)間間接和刷怪效率呈一次負(fù)正比,這個(gè)一次負(fù)正比是在一定范圍內(nèi)的,如圖。

PartⅢ 推廣與總結(jié)
????????在處理時(shí)間大于9gt后,已經(jīng)有了兩次怪物沒(méi)有處理了,這時(shí)上次嘗試的成功率只有2×10^-7的概率,幾乎等于0。所以在處理時(shí)間大于9gt后,處理時(shí)間與刷怪效率呈一次反比。
????????那它們之間的定量關(guān)系呢?我認(rèn)為,


????????自此,我自認(rèn)為解決了處理時(shí)間與刷怪效率之間的定量關(guān)系的理論基礎(chǔ),但是這還是有缺陷,也是我這個(gè)專欄寫了4天的原因(本來(lái)一個(gè)下午就應(yīng)該寫完了)——我卡在程序計(jì)算上了。沒(méi)錯(cuò),這幾天我基本都在不斷地修bug,結(jié)果算出來(lái)6gt后的數(shù)據(jù)還是不盡人意。3-6gt的計(jì)算代碼我開(kāi)源,后面的代碼我改得一塌糊涂,就算了不發(fā)出來(lái)了。那這個(gè)專欄到這里就結(jié)束了,我們下次再見(jiàn)。
????????特別鳴謝:君君