作者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/cn.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