數據帝解密天龍八部墓穴箱子各種物品出現機率
箱子刷出的位置採用隨機選擇的方法,也就是從12個位置中任選6個。
這是序號
因此,所有的箱子排列有C(12,6)種,也就是12*11*10*9*8*7/6*5*4*3*2*1=924種
特別說明的是:箱子刷出的位置跟其他任何東西都沒有關係,只是隨機選取924種其中的1種。
先要說明的是,箱子裡的物品是在寶箱刷出的時候就已經放到裡面的。開不開箱子,東西都已經在裡面了。再接着,就是往裡面放什麼東西的問題。
接下來,就是再不再往裡面放東西的問題了。
還是看下代碼吧:
if random(100) <= 80 then
local ItemSn, ItemName, bBroadCast = GetItemSnByDropRateOfItemTable()
AddItemToBox(sceneId,targetId,QUALITY_MUST_BE_CHANGE,1,ItemSn)
end 解釋一下,代碼中的“if”就是“如果”的意思,“random(100)”就是取一個“隨機數”,這個數在0到100之間,“<=”是“小於等於”,“then”是“然後”的意思。
即是,如果這個數小於等於80,然後執行下面的代碼,如果大於80,那就不再往裡面放東西,這時的箱子就是大家說的“空箱子”。
所以,空箱子出現的機率是20% 。如果不是空箱子,那就執行GetItemSnByDropRateOfItemTable(),取得一個物品。
然後執行AddItemToBox()放進箱子裡面。現在關鍵的是取物品這裡,首先看一下表DropRateOfItemTable(物品掉落機率表)因爲表比較長,雖然是txt格式,不過發到這裡就會變形,大家看得也不清楚。所以,就選重要的講吧!
表裡面,寫着每一樣物品出現的機率,這裡只寫高級技能書的。
其中,每一種技能書出現的機率是一樣的,都是47/10000=0.47%,是不是很小的機率?
不過,一共有25種技能書,所以出現技能書的機率就是25*0.47%=11.75%
另外,別忘了之前說過的空箱子的機率,所以不是空箱子出書的機率只有(1-20%)*11.75%=9.4%
這只是一個箱子出現的機率,那6個箱子呢?看上去是6*9.4%=56.4%
不過,問題似乎沒這麼簡單。
其實,無論我們開多少個箱子,任一個箱子出書的機率都是11.75% 那全開有書的機率又是多少呢?
有書分爲1本、2本、3本、4本、5本、6本書,6種情況,而沒書只有一種情況,就是0本書
所以計算一下沒書的概率,一個箱子沒書的機率是20%+80%*(1-11.75%)=90.6%
那麼,6個箱子都沒書的機率是90.6%^6=55.30561%,(就是90.6%的6次方)
所以,6個箱子全開有書的機率是1-55.30561%=44.69439%,約等於44.7%
總結一下,一個箱子有書的機率是9.4%,6個箱子全開有書的機率是44.7% 另外,從這裡可以看出,很遺憾的是,箱子有沒有書跟箱子排列是沒有關係的,至少是沒有直接關係的。
總之,遊戲裡凡是關係到機率問題的,都是通過random()這個簡單的隨機函數來實現的,並沒有我們想的那麼複雜。
還有,我想說的是,很多東西,有人寧信其有,勿信其無。就好像隨機函數,也會分爲真隨機和僞隨機。