作者arrenwu (不是綿芽的錯)
看板PCReDive
標題Re: [聊天] 試算200天井實裝後 期望抽數的改變
時間Fri Mar 26 11:11:21 2021
※ 引述《phoenix286 (糰子大家族)》之銘言:
: 本來也想算碎片抽的機率分布...
: 但是獎勵碎片有五種結果(0,1,5,20,40) 就不是簡單的二項分布了
: 有人知道要怎麼算嗎?
:
: 推 smart0eddie: 不是啊 你可以算出每抽碎片期望值 這樣就能算抽數了? 03/26 00:32
: 這裡分兩種層面來看
: 1. 單純看碎片抽的期望抽數
: 簡單的估算是 期望抽數 = 145/每抽期望碎片
: 但是直接相除 好像還少考慮了什麼
你們的直覺其實是對的,真的要說少的話,只是少引了一個定理
Elementary renewal theorem
https://en.wikipedia.org/wiki/Renewal_theory#Elementary_renewal_theorem
不過我想這個也不是我們感興趣的結果。
大家比較感興趣的是下面這個復刻池的期望抽數
: 2. 整個復刻池的期望抽數
: 這個需要結合兩個相依的機率分布 又更麻煩了
: → mathtsai: 回樓上 你要算上 抽or鍊成 這個要手算也太困難 03/26 00:35
現在的問題:
如果我想把我老婆聖誕克莉絲從這次復刻池抽出來,
需要抽數的期望值是多少?
喔對了,這是個假設性問題。因為去年我婆卡池一開我就把她抽出來了
復刻池可以看成兩種獨立的池 (1) 抽人的池 (2) 抽碎片的池
抽人的池拿邊很簡單,跟一般PU池差不多,只是機率變成
p = 0.00175
碎片這邊比較複雜,先讓我們看有碎片的獎項:
獎項 碎片 機率
一等獎 40 p1 = 0.005
二等獎 20 p2 = 0.01
三等獎 5 p3 = 0.05
四等獎 1 p4 = 0.10
好,然後呢,讓我們定義兩個隨機變數 X,Y:
X = 抽人的池,抽出克莉絲需要的抽數
Y = 抽碎片的池,抽到的碎片量達到145的抽數
最後呢,定義復刻池抽出克莉絲需要的抽數 Z:
Z = min(X,Y)
反正就是哪個池先達到弄出一個克莉絲,就是我們需要的抽數
而上面那個問題其實就是在問 E[Z]
這邊呢,我跟大家介紹一個計算非負整數隨機變數期望值的公式
∞
E[Z] = Σ P(Z > n)
n=0
這個很方便喔 算這種抽抽問題也滿實用
然後呢:
P(Z > n) = P(min(X,Y) > n)
= P( X > n and Y > n)
= P(X > n) P( Y > n ) (抽人池和抽碎片池是獨立池)
X部分很好算,而且只有 n<300 的時候大於零 :
P(X > n) = (1-p)^n n = 0~299
= 0 otherwise
所以:
∞
E[Z] = Σ P(Z > n)
n=0
∞
= Σ P(X > n) P(Y > n)
n=0
299 <----- 不用算到無窮囉 耶!
= Σ (1-p)^n P(Y > n)
n=0
那 P(Y > n) 是多少呢?
我們定義四個隨機變數 N1(n),N2(n),N4(n),N4(n):
N1(n): 抽碎片池的前n抽中,一等獎的個數
N2(n): 抽碎片池的前n抽中,二等獎的個數
N3(n): 抽碎片池的前n抽中,三等獎的個數
N4(n): 抽碎片池的前n抽中,四等獎的個數
P(Y>n) = P(碎片池前n抽碎片量不足以合成克莉絲)
= P( 40*N1(n)+20*N2(n)+5*N3(n)+1*N4(n) ≦ 144 )
我想板上佑樹普遍水準應該都不錯,下面這個自己應該算得出來
For any non-negative k1,k2,k3,k4 and k1+k2+k3+k4 <= n
P( N1(n)=k1, N2(n)=k2, N3(n)=k3 , N4(n)=k4)
= n!/(k1!k2!k3!k4!(n-k1-k2-k3-k4)!) *
p1^k1 p2^k2 p3^k3 p4^k4 (1-p1-p2-p3-p4)^(n-k1-k2-k3-k4)
而 P( 40*N1(n)+20*N2(n)+10*N3(n)+1*N4(n) ≦ 144 )
= Σ P(N1(n)=k1, N2(n)=k2, N3(n)=k3 , N4(n)=k4)
(k1,k2,k3,k4) in A(n)
where A(n) = {(k1,k2,k3,k4) | k1,k2,k3,k4 >=0, k1+k2+k3+k4 <= n,
40*k1+20*k2+5*k3+1*k4 ≦ 144 }
所以這樣就可以算 E[Z] 了
我算出來是 E[Z] = 167.62
--
https://pbs.twimg.com/media/EwSsY_jVEAkCEgJ.jpg
角卷綿芽80萬訂閱紀念靠枕開始販賣! (開放購買至 4/19 下午 4:59)
購買連結:
https://hololive.booth.pm/items/2808989
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 98.234.190.206 (美國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PCReDive/M.1616728289.A.3E2.html
1F:推 c871111116: 恩恩 跟我想的差不多 就是這樣吧 03/26 11:12
2F:推 fisheryu0514: 恩,我也這麼認為 03/26 11:14
3F:推 JeffMnO4: 那就記168,公主連結一路發! 03/26 11:18
4F:推 skbb2553: 不對啊 聖誕克總不能碎片合成 03/26 11:21
5F:推 CorkiN: 嗯嗯跟我想的一樣 03/26 11:22
6F:→ OscarShih: 我不是早就這樣子說了嗎 03/26 11:23
7F:推 skbb2553: 不過Re0復刻角就可以這樣算了 03/26 11:24
8F:推 frank79618: 我沒走錯版吧XD 03/26 11:44
9F:推 passioncraig: 嗯嗯跟我想的一樣 03/26 11:47
10F:推 v800982004: 我的答案跟小當家一樣 03/26 12:01
11F:推 chun47: 嗯嗯 差不多就是這樣 03/26 12:03
12F:推 pq5346929: 跟我想的一樣 03/26 12:04
13F:推 gn005066: 恩恩 03/26 12:04
14F:推 phoenix286: 三等獎是五片 應該是5×N3 03/26 12:10
你說得沒錯 我程式裡面寫對 上面打錯
15F:推 smart0eddie: 嗯嗯跟我想的一樣 03/26 12:10
17F:推 sky79717: 嗯嗯嗯 就是這樣 03/26 12:12
18F:推 g9591410: 大哥 我是文組 看無= = 03/26 12:15
19F:推 phoenix286: P(min(X,Y) > n) P( X > n and Y > n) 03/26 12:21
20F:→ phoenix286: 這行推導沒看懂 能解釋一下嗎? 03/26 12:21
21F:→ phoenix286: P(min(X,Y) > n) = P( X > n and Y > n) 03/26 12:22
min(X,Y) 這個量就是取 X,Y 中比較小的值
所以 min(X,Y) > n 就等同於在說 X,Y 都大於 n
22F:推 globalspirit: 嗯,跟我想得一樣 03/26 12:27
23F:推 aegis91086: 感謝解析 03/26 12:41
24F:推 v86861062: 奇怪的知識增加了 03/26 12:50
25F:推 qaz0503: 你講的我都知道,可是我每次都保底是什麼回事 03/26 13:05
26F:推 roc074: 原來如此,嗯嗯! 03/26 13:09
27F:→ whiwhiwhi: 你算了這麼多 可是聖誕克總不能合成耶(X 03/26 13:10
28F:推 reaturn: 日版不能合啊 XD 03/26 13:14
29F:→ whiwhiwhi: 台版也不能啊 03/26 13:15
30F:→ whiwhiwhi: 我說聖誕克總(X 03/26 13:15
喔 我其實不知道哪些可以哪些不行XD 不能碎片合成的話其實就跟一般PU池類似
31F:→ whiwhiwhi: 台版就到泳真步 從萬華開始就不行 03/26 13:23
32F:推 dustlike: 可是瑞凡 你婆已經不能人體鍊成惹 03/26 13:33
33F:推 cjacky1026: 跟我想的一樣呢 03/26 13:57
34F:推 mathtsai: 用程式跑就好惹 03/26 13:58
35F:→ mathtsai: 而且程式跑出來和你算的不一樣@@ 03/26 14:00
我用蒙地卡羅跑出來的結果跟上面一樣喔
import random
from numba import njit, prange
p = 0.00175;
p1 = 0.005;
p2 = 0.01;
p3 = 0.05;
p4 = 0.1;
P1 = 0 + p1;
P2 = P1 + p2;
P3 = P2 + p3;
P4 = P3 + p4;
@njit(parallel=True)
def montecarlo(nSample):
result = np.zeros(nSample);
for i in prange(nSample):
nDraw = 0;
nShard = 0;
while (nDraw < 300):
nDraw +=1;
if (random.random()<p):
break
pN = random.random();
if (pN < P1):
nShard += 40;
elif (pN<P2):
nShard += 20;
elif (pN<P3):
nShard += 5;
elif (pN < P4):
nShard += 1;
if (nShard >= 145):
break
result[i] = nDraw;
return result
N = 10000000
print(sum(montecarlo(N))/N)
36F:推 andrewhanks: 我到底看了三... 03/26 14:06
37F:推 OppOops: 定義的部分寫成"花費"的抽數好像比較容易懂 03/26 14:21
38F:→ OppOops: 因為抽可以無限次, > n 的時候停下來, 事實上是反著加總 03/26 14:23
39F:推 JJJZZs: 算錯了 你沒算到我是非洲人這個參數 03/26 14:34
40F:→ whiwhiwhi: 對我來說只是300變200而已 03/26 14:40
41F:推 xkiller1900: 學術論壇 03/26 14:54
42F:推 shin30: 恩恩 跟我算得差不多 03/26 14:58
43F:推 SatoTakeru: 公主連結是一款真正的數學遊戲 03/26 15:13
44F:推 js850604: 你有考慮血統這個參數嗎 03/26 15:16
45F:推 louis82828: 嗯嗯 跟我驗算的結果一樣 03/26 15:25
46F:推 wfleowang: 這篇讓我想到以前修機率的時光...... 03/26 15:33
47F:→ schula: 果然還是要做有興趣的事情才會比較有趣啊lol 03/26 15:53
48F:推 r901700216: 除了供殺小 我不知道要講什麼 03/26 16:13
49F:推 mathtsai: 寫法差不多 但是我是用C++ 03/26 16:18
50F:→ mathtsai: 不過算出來怎麼差這麼多@@ 03/26 16:20
51F:→ mathtsai: 上一篇h大也算出和我一樣的答案 03/26 16:21
52F:→ harryron9: 他這個結果對的啊 0.0175 天井300 03/26 16:27
53F:→ harryron9: 0.00175 03/26 16:28
54F:推 Incredible99: 跟我算的一樣啊 03/26 16:32
55F:推 mathtsai: 喔喔 他p取0.0175 那應該沒錯了XDD 03/26 16:35
56F:→ mathtsai: 我改參數之後得到167.08 原po計算應該無誤 03/26 16:38
57F:推 SuperSg: 嗯嗯嗯,我的意思就是這樣 03/26 17:26
58F:推 nutta: 喔喔對耶就是這樣 03/26 17:40
59F:推 Lupin97: 你忘了遊戲裡的佑樹是失智仔,而我現在也差不多=.= 03/26 19:04
60F:→ OscarShih: 讀書有那麼認真就好惹 ( 03/26 19:35
61F:→ felixr0123: 賺賺賺 03/26 19:37
62F:推 epidemic000: 嗯嗯 就跟我想的一樣 03/26 21:02
63F:推 phoenix286: 你這個算出來是理論值嗎?還是抽樣結果?(不大懂蒙地 03/27 00:05
64F:→ phoenix286: 卡羅 03/27 00:05
這篇文章打的是理論值呀
萌帝卡蘿是模擬。我的code就貼在下面推文那邊
65F:推 tw15: 我本來也是跟你想的一樣 但是我現在失智了大概你說得沒錯 03/27 00:05
66F:推 phoenix286: 我是說那個167.62 03/27 00:57
那個是理論值啊 就上面文章寫的方式算出來的
※ 編輯: arrenwu (98.234.190.206 美國), 03/27/2021 03:59:39
67F:→ HYDE1986: 嗯嗯 跟我算的一樣 03/27 08:08
68F:推 Sechslee: 好 看不懂 03/27 15:19
69F:推 jasonwung: 嗯嗯 原來如此 03/27 17:08
70F:→ ilovedaodao: 我覺得抽就對了,算這麼多結果還是保底結果旁邊朋友 03/28 11:01
71F:→ ilovedaodao: 10抽中會吐血 03/28 11:01
72F:推 kevin030899: 怎麼感覺以後可能在某間學校的期中考看到XD 03/28 23:35
73F:推 ikusou174: 不錯給推 03/28 23:46