觀看更多訊息,立即加入跑跑資訊站,掌握跑跑卡丁車第一手資訊!
您需要 登入 才可以下載或查看,沒有帳號?立即加入
本帖最後由 moulin 於 2021-2-7 20:07 編輯
針對 https://kartinfo.me/thread-7933-1-1.html 提供的開數字機率
小弟用一些數學上的小概念製作了一個對應表(開出來的數字數 對應 耗費的寶石數)
例如中第14個數字的機率為30%,可假想目前有十個數字排成一排,其中三個是目標數字。
則公式為 ( 1 * C(9,2) + 2 * C(8,2) + 3 * C(7,2) + ... + 8 * C(2,2) ) / C(10,3) = 2.75
即要抽中一個機率為30%的數字,約要試 2.75 次。
解釋:
若第一個數字就是目標數字,則後面九個數字有 C(9,2) 個可能組合(可看成 7 個非目標數字,2 個是目標數字)
故此階段累加次數為 1 * C(9,2) 次
若第二個數字就是目標數字,則後面八個數字有 C(8,2) 個可能組合(可看成 6 個非目標數字,2 個是目標數字)
故此階段累加次數為 2 * C(8,2) 次
若第三個數字就是目標數字,則後面七個數字有 C(7,2) 個可能組合(可看成 5 個非目標數字,2 個是目標數字)
故此階段累加次數為 3 * C(7,2) 次
將累加次數的總和(即上述第一至第八個數字的加權次數總和) 除以 C(10,3)(總組合數) 即為此假想情況下的平均次數
註:C(a,b) 表示為 C a 取 b。
依上述結論推得下表(四捨五入至小數點後三位):
第n個數字 | 開出第 1 ~ n 個數字所需寶石數 | 開出第 n 個數字所需寶石數 | 1 | 1.000 | 1.000 | 2 | 2.100 | 1.100 | 3 | 3.200 | 1.100 | 4 | 4.367 | 1.167 | 5 | 5.567 | 1.200 | 6 | 6.942 | 1.375 | 7 | 8.422 | 1.500 | 8 | 10.542 | 2.100 | 9 | 13.167 | 2.625 | 10 | 15.167 | 2.000 | 11 | 17.267 | 2.100 | 12 | 19.371 | 2.104 | 13 | 21.689 | 2.318 | 14 | 24.439 | 2.750 | 15 | 28.689 | 4.250 | 16 | 33.739 | 5.050 | 17 | 39.350 | 5.611 | 18 | 49.850 | 10.500 | 19 | 54.950 | 5.100 | 20 | 67.575 | 12.625 | 21 | 77.675 | 10.100 | 22 | 103.175 | 25.500 | 23 | 128.425 | 25.250 | 24 | 228.525 | 100.100 | 25 | 728.775 | 500.250 |
可看出,第 25 個數字用 500 個寶石才開出來是很平常的事,且總共可能要耗費 728 個寶石才可能滿盤。
前幾天聽某些人提到,有人第 25 個數字用 50 幾個就開出來,也有聽到用了 500 多個的。
在數學上,約 500 個寶石才開出來是正常情況,若你夠歐的話,也可能不到 100 個就開出來了 ~
所以,如果你花到台幣快 1 萬才滿盤,不用覺得運氣特別差 XD
下面附上 python code:
- arr = [1,1,10,9,10,9,20,17,5,4,
- 10,7,5,3,20,9,20,7,5,2,
- 20,9,100,47,50,21,10,3,50,11,
- 100,19,100,17,20,1,50,9,100,7,
- 100,9,50,1,100,3,1000,9,2000,3]
- def c(a,b):
- ret = 1
- for i in range(b):
- ret *= (a-i)
- for i in range(b):
- ret /= i+1
- return ret
- ans = 0
- for i in range(25):
- a = arr[i*2]
- b = arr[i*2+1]
- tmp = 0
- sta = 1
- while(sta + b - 1 <= a):
- tmp += sta * c(a-sta,b-1)
- sta = sta + 1
- ans += tmp / c(a,b)
- print(i+1 , ':' , ans , ' ' , tmp/c(a,b))
如果沒有外在因素影響每個玩家抽數字的機率,此種計算方式的可信度應該不錯。
反之,不太有人能預測 XD。
20210207 20:07 更新:
發現此算法有一個小問題,以機率 10 % 來說,若以 C(90,9) 來算,會與 C(100,10) 的答案略有不同。
也就是說週期的長度(前者為90,後者為100)會影響消耗扭蛋個數的平均值。
本算法是針對特定情況所假想之設計(例如機率 3% 代表在 100 次內,恰會中 3 次),但官方也可能是用時間亂數來設定此機率。
之後若有時間,可能會做一個在時間亂數設定機率之情況下的算法分享給大家 ~
|