為什麼這篇期望值抽卡鄉民發文收入到精華區:因為在期望值抽卡這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者yeez ( )看板FATE_GO標題[閒聊] 抽數期望值計算機時間Fri Dec 9 02...
期望值抽卡 在 Dex | Traveler Instagram 的最讚貼文
2020-11-02 05:58:25
Exploring the city again. . 蛇口 SO 創意碼頭半日遊 . 如今深圳網紅景點越來越多,之前看到不少人強烈推薦蛇口SO創意碼頭,今天就抽空去蛇口一日游了。 . 無疑蛇口確實是深圳的好去處,有不少小清新的咖啡館,也有不少免費拍照的好地方,但這次探訪的SO創意碼頭其實一般般。 ...
2022/12/10 11:32 更新:已排除了溢位問題,抽數設定無限大應該都可以正常運行
----------------------寫在前面----------------------
1. 本文含有大量數學算式,範圍涵蓋條件機率、二項式定理等數學觀念。
若對數學有強烈過敏或排斥反應,建議直接END看結論或是左轉離開。
2. 本文不含任何統計學觀念,完全只有機率。
3. 本文不考慮任何因抽卡玄學帶來的機率變動影響,也一概不討論玄學對機率之影響。
4. 文末提供之工作表在使用上很簡單,完全不知道這篇在講什麼也可以快樂(?)使用。
5. 本文忽略保底影響。
6. 本文為了計算方便,會將抽卡行為理想化,請自行斟酌下修實際機率。
----------------------------------------------------
大家好,無聊的數學家又來荼毒......分享一些有趣東西給大家了
這件事情本來是一個單純想法
「單抽中PU五星的機率是0.008,那是否1000抽就可期望抽中8隻PU五星?」
「實際上,1000抽中8隻以上PU五星的機率有多少?」
對於一個無課/福袋課玩家而言,石頭是有限的。
一年從營運收到的免費石,可能是幾百~一千多抽的程度。
那麼無課玩家就會想知道:
1. 假如我在一年內想抽到X個五星,用現有的抽數,是否太樂觀了?
2. 我總共有Y抽,在目前的卡池抽到我想要的角色的機率有多少?
3. 一年過去了,我抽到了Z個五星,算是哪一個大洲的人?
以下問題將會一一解答,並提供計算機,大家可以自己算。
(不想看數學的可以END了)
----------------------------------------------------
一切問題從簡單的範例開始。
假如我們用一個紅白球箱子來模擬卡池。
箱子內有4個紅球,1個白球。
抽中紅球算中獎(真容易中獎),抽完球放回箱中。
那麼抽中紅球機率=4/5=0.8,抽中白球機率=1/5=0.2。
假如只抽1次,抽中紅球機率自然就是0.8。
抽2次的話就開始有趣了,根據結果,會有四種情形:
P(紅紅) = 0.8*0.8 = 0.64
P(紅白) = 0.8*0.2 = 0.16
P(白紅) = 0.2*0.8 = 0.16
P(白白) = 0.2*0.2 = 0.04
當然 0.64 + 0.16 + 0.16 + 0.04 = 1。
抽中兩紅的機率,是P(紅紅) = 0.64。
抽中兩白的機率,是P(白白) = 0.04。
一紅一白的機率,是P(紅白)+P(白紅)=0.16+0.16=0.32。
由於抽中順序不影響其最終機率,所以通常會合併看待。
----------------------------------------------------
讓我們用另一種觀點來看待此事。
下面是一個簡單的算式:
(0.8+0.2)^2
我們當然知道這個答案是1,因為0.8+0.2=1,
且1不管自乘幾次,答案都是1。
但是我們假如直接展開算式,就可以發現與上面的紅白球機率對應:
(0.8+0.2)^2
= 0.8*0.8 + 0.8*0.2 + 0.2*0.8 + 0.2*0.2 = 1。
而(0.8+0.2)^3的機率,也正好與抽樣三次的情況對應:
(0.8+0.2)^3
= 0.8*0.8*0.8 + 0.8*0.8*0.2 + 0.8*0.2*0.8 + 0.8*0.2*0.2
+ 0.2*0.8*0.8 + 0.2*0.8*0.2 + 0.2*0.2*0.8 + 0.2*0.2*0.2
= P(紅紅紅) + P(紅紅白) + P(紅白紅) + P(紅白白)
+ P(白紅紅) + P(白紅白) + P(白白紅) + P(白白白)
= 1。
於此可以類推,抽1000次的機率分布可以由
(0.8+0.2)^1000
展開得出。
可是單純展開仍然無法減少我們的工作,
所以到了本文另一主角:二項式定理出場。
----------------------------------------------------
二項式定理
(x+y)^n 可以展開為 C(n,k)*x^k*y^(n-k) 的級數和。
礙於數學公式不好在批踢踢上打出來,直接引用wiki截圖:
https://i.imgur.com/zmirw96.png
Ref: Wiki二項式定理條目
https://reurl.cc/10keeG
簡單用上面的例子類推
(0.8+0.2)^3
= C(3,0)*(0.8)^3*(0.2)^0
+ C(3,1)*(0.8)^2*(0.2)^1
+ C(3,2)*(0.8)^1*(0.2)^2
+ C(3,3)*(0.8)^0*(0.2)^3
= 1*(0.8)^3
+ 3*(0.8)^2*(0.2)
+ 3*(0.8)*(0.2)^2
+ 1*(0.2)^3
= 1*P(三紅) + 3*P(兩紅) + 3*P(一紅) + 1*P(無紅)
= 1。
那麼我們把中獎機率換成代數,當抽1000次時,就會變成
(不中+中)^1000
= C(1000,0)*P(不中) +
C(1000,1)*P(中一個) +
C(1000,2)*P(中兩個) +
C(1000,3)*P(中三個) +
... +
C(1000,1000)*P(全中)
至此,準備工作完成。
----------------------------------------------------
回到原本問題
1000抽中8隻以上PU五星的機率有多少?
此機率可以看成
P(1000抽中8隻以上PU五星)
= 1 - P(1000抽中0~7隻PU五星)
= 1 - [ C(1000,0)*P(不中) +
C(1000,1)*P(中一個) +
C(1000,2)*P(中兩個) +
... +
C(1000,7)*P(中七個)]
至於 C(1000,N)*P(中N個) 怎麼算?
假如1000抽中1個,表示另外999次都不中
機率就是 C(1000,1)*(抽中)^1*(不中)^999
中二就是 C(1000,2)*(抽中)^2*(不中)^998
中三就是 C(1000,3)*(抽中)^3*(不中)^997
...
以此類推。
完整算式列一下
P(1000抽中8隻以上PU五星)
= 1 - P(1000抽中0~7隻PU五星)
= 1 - [ C(1000,0)*P(不中) +
C(1000,1)*P(中一個) +
C(1000,2)*P(中兩個) +
C(1000,3)*P(中三個) +
C(1000,4)*P(中四個) +
C(1000,5)*P(中五個) +
C(1000,6)*P(中六個) +
C(1000,7)*P(中七個)]
= 1 - [ C(1000,0)*(抽中)^0*(不中)^1000 +
C(1000,1)*(抽中)^1*(不中)^999 +
C(1000,2)*(抽中)^2*(不中)^998 +
C(1000,3)*(抽中)^3*(不中)^997 +
C(1000,4)*(抽中)^4*(不中)^996 +
C(1000,5)*(抽中)^5*(不中)^995 +
C(1000,6)*(抽中)^6*(不中)^994 +
C(1000,7)*(抽中)^7*(不中)^993]
再把實際機率: 抽中=0.008,不中=0.992 代入算式中
大功告成了,算式裡面已經沒有任何未知數了。
於是我們可以把以上過程編進Google工作表中,
然後填上中獎機率與抽數,得出想要的結果。
---------------END請回到這裡看結論---------------
於是乎,經由工作表的努力,得出的結果如下圖
https://i.imgur.com/VnQPWlM.png
查表可以得知 P(1000抽中8隻以上PU五星) = 54.76%。
也就是說如果你的運氣是排名前54.76%的玩家,
你在任何卡池加總丟1000抽,可以得到8隻以上的PU五星。
(一半以上的玩家可以期待,1000抽中8隻以上PU五星呢)
如果連抽歪五星也想計入呢?把中獎率從0.008調成0.01即可。
另外這個表格也可以計算單個卡池的期望值
假如你想抽奧伯龍池,準備了200抽,
想知道這樣抽中寶1~5的機率有多少
把機率設為0.008,抽數設為200即可。
工作表如下,請自行另存副本/下載取用。
https://reurl.cc/7jbRk9
另外我的公式有寫活,如果覺得中10隻太少想計算更多隻,
選取最後一行往右拖拉即可。
----------------------寫在最後----------------------
1. 此表格有理想化的地方,
在於一年內玩家能領的石頭不是一開始就能領到,而是依時間增加的。
所以途中抽到一半沒石頭的情況,本表無法顧及。
但是判斷單個卡池的期望值不受此影響,可以放心使用。
2. 此表格可套用於其他遊戲卡池,如果該卡池的機率公正的話。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.235.245 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/FATE_GO/M.1670523358.A.9D1.html
在討論機率的時候,我們是不討論抽樣方式的
因為不同的抽樣方式會導致不同的機率結果
擅自想像賭場的出貨規則,也是許多賭徒賠得血本無歸的主要原因
沒有人會在絕望的情況下還加注,大輸特輸
賭徒會大輸特輸的原因,往往是因為他自以為掌握了賭場的潛規則
福本伸行的<賭博墮天錄>有很傳神的描述,推薦大家看看
(就是那個給開司一瓶啤酒的漫畫續篇啦,不清楚有沒有真人版)
所以上面那個說法除非拿拆包程式碼證據出來,不然我就當在雲了
----
而且這個說法如果為真,那就恐怖了
因為這邏輯等價於抽後不放回的機率模型
每一抽的機率都在跳動,絕對不是表定的0.8%
(基本上如果有程式這樣寫,可以試著告告看遊戲公司XD)
然後取後不放回的卡池程式碼寫起來,比取後放回還麻煩
取後放回其實就直接套個多層亂數就好了,一條式子解決
取後不放回要構建一個鴿籠卡池,還要一段時間洗掉重建一個鴿籠卡池
大量的資料更迭也會造成系統多餘負擔,真的有工程師這樣寫,我倒想看看
----
另外一點是,就算此說法屬實,玩家也沒有較佳策略
因為營運仍然有許多方式可以解決此問題
首先你要保證,卡池的時間區段,是很現實可以操作的大小
如果時間區段1毫秒,那時間內玩家抽卡次數太少,
就算卡池是鴿籠,帶來的機率波動也小
1000個裡面有8個中獎但只有一個人抽,正好跟機率一樣
如果時間區段1個月,那所有人都在同一區段內抽卡
營運如果做個巨大鴿籠,比如1000億裡面有8億中獎
那就算1個月過去了有10萬個人中獎,對鴿籠的機率影響也是微乎其微
(8億-10萬)/(1000億-10萬) ~ 0.8% 一樣沒問題
所以假如營運調低換池時間週期,或是調高池的總量
都可以解決問題
用二十一點的說法,第一種就是玩一把就換一副牌,第二種就是用一百副牌的卡堆
都能有效的遏止玩家算牌,<決戰二十一點>也是老電影了啊
----
最後用個小小機率問題,說明何謂抽樣方法影響機率,來做個結論吧
這是一題經典題:
在一個圓內任意選一條弦,
這條弦的弦長,大於這個圓的內接等邊三角形的邊長的機率是多少?
這個問題根據不同的取樣方法,至少有三種以上的答案:
1. 在圓周上隨機選兩點,此兩點連成弦,機率是1/3。
2. 在圓內畫一條直徑,在直徑上選一個點畫垂直於直徑的線為弦,機率是1/2。
3. 在圓內選一點,畫出此點與圓心連線的垂直線為弦,機率是1/4。
這是著名的<伯特蘭悖論>,可以參見Wiki:
https://reurl.cc/6Lb4y6
如果看過葛登能(Martin Gardner)的著作,就會知道好玩的數學其實也是很多的