杂谈||Python实现计算含保底抽卡出金期望
生活随笔
收集整理的這篇文章主要介紹了
杂谈||Python实现计算含保底抽卡出金期望
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ?吃飯(等異客)前幾分鐘看不進論文寫著玩的,模型和代碼都很簡單,閑著的時候練練手。試了幾個玩過的游戲,基本都是有保底機制的,對于FGO的保底機制不是很清楚,另外兩個游戲是遞增模型。至于計算模型就是很簡單的概率論模型。just for fun
? ? ? ? mihoyo給出了一個綜合出金概率1.600%含保底,吃飯前突然想到這個想看看他是怎么算的,就隨手寫了個小練習計算了一下這類含保底游戲的出金期望。搜了一下FGO、原神、明日方舟三個游戲的保底機制然后用了簡單的概率論模型計算了出金期望。
? ? ? ? 為第n次出金的概率,為前n-1次都不出金的概率,因此得出p(x)為直到第x次才首次出金的概率,關于p(x)的計算則直接參考網上搜的數據,num_s為開始概率增加的次數,num_end為最終必出金卡的次數。
代碼:
import numpy as npclass wildcard(): # Ex = p1*x1*1 + ... + pn*xn*ndef __init__(self, base=0.006, num_s=73, num_end=90):self.base = baseself.num_s = num_sself.num_end = num_endself.add = (1.0 - self.base)/(self.num_end - self.num_s)def now_rate(self, n):if n <= self.num_s:return self.baseelse:return self.base + self.add*(n - self.num_s)def compute_p(self, n):if n == 1:return 1.0else:return self.compute_p(n-1) * (1.0 - self.now_rate(n-1))def get_ex(self):ex = 0for i in range(1,self.num_end+1):ex += self.now_rate(i) * self.compute_p(i) * ireturn exGenshin = wildcard() exG = Genshin.get_ex() Arknights = wildcard(0.02, 50, 99) exA = Arknights.get_ex() FateGrandOrder = wildcard(0.01, 333, 334) exF = FateGrandOrder.get_ex() print('The average number of a SSR in Genshin is:',int(exG)) print('The average number of a SSR in Arknight is:',int(exA)) print('The average number of a SSR in FateGrandOrder is:',int(exF))? ? ? ? 整體實現還挺簡單的,算出來的結果也和網上看到的平均出金次數差不多,FGO的那個三百多抽的保底基本上沒有效果所以最后結果也很接近100抽,取整后原的62*1.6%和給的概率也差不多。(順便粥的出貨率真的好高啊)
?
總結
以上是生活随笔為你收集整理的杂谈||Python实现计算含保底抽卡出金期望的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鉴于喀拉拉邦的持续洪灾,UAE Exch
- 下一篇: AES与RSA混合加密完整实例