Clicker-Heroes
Clicker Heroes Ruby的機會?
從魚身上得到 1 顆紅寶石的機率是多少?
是 50% 的機率,還是沒有得到 Ruby 的機率更高?
我只得到硬幣的次數比得到紅寶石的次數多。
從魚中獲得紅寶石的機會究竟有多大?
讓我們看一下原始碼,好嗎?
負責(目前)魚和蜜蜂的腳本是
heroclickerlib.managers.HiddenObjectManager
.在該腳本中,我們找到了一個函式
private function onHiderClick(param1:MouseEvent) : void
。該函式負責點擊魚時的點擊事件。
private function onHiderClick(param1:MouseEvent) : void { var _loc4_:* = 0; var _loc5_:* = NaN; var _loc6_:* = NaN; this.removeHider(); if(Rnd.boolean(0.44)) { _loc4_ = 1; if(Rnd.boolean(0.04 + this._userData.ancients.doubleRubyPercent / 100)) { _loc4_ = 2; } this._userData.addRubies(_loc4_,"hidden_object",-1); _loc5_ = this._battleManager.display.mouseX; _loc6_ = this._battleManager.display.mouseY; this._battleManager.uiManager.battleUI.transientEffects.showGeneralMessage(_loc5_,_loc6_,_("+%s Ruby!",_loc4_)); } var _loc2_:Monster = new Monster(); _loc2_.id = 2; _loc2_.level = this._userData.highestFinishedZone + 1; var _loc3_:Number = this._userData.getMonsterReward(_loc2_) * 10; _loc2_.isBoss = true; this._battleManager.itemDropManager.goldSplash(_loc3_,_loc2_,ServerTimeKeeper.instance.timestamp); HeroClickerSoundManager.instance.playSoundEffectById(36); this._battleManager.uiManager.battleUI.transientEffects.showGeneralMessage(580,152,"Yay!!"); }
這裡有兩個函式呼叫很重要:
if(Rnd.boolean(0.44))
:這在內部檢查(均勻分佈的)隨機數是否小於 0.44。這估計出至少有一顆紅寶石的機率幾乎是 44% 。if(Rnd.boolean(0.04 + this._userData.ancients.doubleRubyPercent / 100))
:這個相當長的呼叫會檢查隨機數是否小於 0.04 + 你的古人的額外雙倍紅寶石百分比。這意味著在所有獲得紅寶石的情況下,有 4% 的情況下您會獲得 2。沒有任何古人,獲得 2 顆紅寶石的機會約為 0.44*0.04=0.0176 => 1.76%
在魚上點擊 1000 次後,您獲得的平均紅寶石數量為:444,4 => 44,44%
440 times at least one ruby => 440*4% = 11 times 2 rubies = 22 + => 440*96% = 422,4 times 1 ruby = 422,4 ==> 444,4 rubies => ~444,4/1000 = 44,44% chance of getting one ruby on average
每次點擊的預期紅寶石數量為 0,4444。
我使用JPEXS Free Flash Decompiler來獲取原始碼。