本帖最后由 米悄待 于 2023-1-19 23:32 编辑
如题,
概率采用未收录的概率计算
即下表
抽卡次数 |
概率 |
1 - 60 |
0.05 |
61 - 120 |
0.08 |
121 - 180 |
0.1 |
181 - 240 |
0.15 |
241 - 300 |
0.2 |
301 - 360 |
0.25 |
361 - 420 |
0.3 |
421 - 480 |
0.4 |
481 - 540 |
0.5 |
541 - 600 |
0.7 |
601 - 660 |
0.8 |
661 - 720 |
0.9 |
721 - 800 |
1 |
800抽必出神眷
每60抽必出ssr、sp
要先抽到一个ssr、sp才能抽神眷
ssr概率=1%,sp概率=0.25%
前3个ssr、sp概率2.5倍
游戏内截图
https://bbs.nga.cn/read.php?tid=34993350&_fp=3
我跑出来大概是190抽
不知道哪里出错了,求大佬指正
下面是代码#学了半年感觉什么都不会的我
[Python] 纯文本查看 复制代码 from random import random
p = 1.25/100
shen神眷概率={1:0.05, 2:0.08, 3:0.1, 4:0.15, 5:0.2, 6:0.25, 7:0.3, 8:0.4, 9:0.5, 10:0.7, 11:0.8, 12:0.9, 13:1}
shen神眷出货={}
def chu出货判断(p):
if random()<p:
return True
return False
for _ in range(1000000):
chou抽卡次数 = 0
shen神眷 = False
ssr = 0
wei未出货次数 = 0
while not shen神眷:
chou抽卡次数+=1
if chou抽卡次数 == 800:
shen神眷=True
else:
if ssr == 0:
if wei未出货次数 == 60:
ssr +=1
else:
if chu出货判断(p*2.5):
ssr +=1
else:
wei未出货次数 += 1
elif ssr < 3:
if wei未出货次数 == 60:
ssr +=1
if chu出货判断(shen神眷概率[min(chou抽卡次数//60+1,13)]):
shen神眷 = True
else:
if chu出货判断(p*2.5):
ssr +=1
if chu出货判断(shen神眷概率[min(chou抽卡次数//60+1,13)]):
shen神眷 = True
else:
wei未出货次数 +=1
else:
if wei未出货次数 == 60:
ssr +=1
if chu出货判断(shen神眷概率[min(chou抽卡次数//60+1,13)]):
shen神眷 = True
else:
if chu出货判断(p):
ssr +=1
if chu出货判断(shen神眷概率[min(chou抽卡次数//60+1,13)]):
shen神眷 = True
if chou抽卡次数 in shen神眷出货:
shen神眷出货[chou抽卡次数]=1+shen神眷出货[chou抽卡次数]
else:
shen神眷出货[chou抽卡次数]=1
kz=0
vz=0
for k,v in shen神眷出货.items():
kz+=k*v
vz+=v
print(f'{kz}/{vz}={kz/vz}') |