最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

抽卡機制分析工具分享

2021-03-06 17:24 作者:一棵平衡樹  | 我要投稿

前言

????????憑興趣研究原神抽卡系統(tǒng)的設(shè)計也有一段時間了,這里分享一下我的一些研究方法。本文提到的方法都是很經(jīng)典且通用的方法,可以解決各類實際問題,當然也可以用于設(shè)計游戲的各種數(shù)值系統(tǒng)。由于我數(shù)學不是很好,所以行文難免冗長,請多多包涵。

*本文提及的綜合概率意為抽卡次數(shù)趨于無窮時,抽出來的物品比上總抽數(shù)的比值。

數(shù)據(jù)獲取

????????對于統(tǒng)計分析工作,無論使用的方法有多先進,一份來源可靠且數(shù)量足夠的數(shù)據(jù)都是必須的。我嘗試過通過收集身邊人的抽卡記錄、看主播抽卡視頻、彈幕收集出貨記錄等方法來收集數(shù)據(jù),這些辦法效率都比較低,并且收集到的數(shù)據(jù)準確度存疑。后來得益于一些抽卡記錄導出工具,我得以獲取大量詳細且無錯誤的抽卡記錄,我已經(jīng)將獲得的抽卡記錄放在GitHub上的GI_gacha_dataset項目中。

數(shù)據(jù)處理

1.?選取最佳估計值

????????如果你已經(jīng)得到了大量數(shù)據(jù),怎樣估計抽卡系統(tǒng)的概率呢?拿原神的抽卡系統(tǒng)舉例,由于五星90抽保底,如果當前統(tǒng)計的五星道具獲取抽數(shù)+此后記錄中剩余抽數(shù)不足90抽,則應該舍去本次記錄。在保留的記錄中取每次獲取五星物品時使用的抽數(shù)作為參考抽數(shù),將保留記錄中五星總數(shù)比上參考抽數(shù)的比值作為綜合概率的估計量。

????????為什么要這樣呢?舉個簡單的例子,若收集到的數(shù)據(jù)中每個玩家只抽了十次,都沒有觸發(fā)抽卡概率上升段。按照總抽出五星數(shù)比上總抽數(shù)得到的值,隨著收集到的數(shù)據(jù)增加,是趨于0.6%而不是1.6%的。由于玩家總抽數(shù)是有限的,所以根據(jù)保底抽數(shù)舍去部分記錄才可以保證無偏記錄。因此,分析各種抽卡系統(tǒng)都要恰當?shù)倪x取綜合概率估計量,否則得到的結(jié)果會是有偏的。

2.?繪制分布圖

????????很多信息被隱藏在分布中,分布刻畫了比均值、方差這些統(tǒng)計量多得多的信息,同時分布也能夠幫助你在噪聲中提取信息。多繪制分布圖可以找出不同模型間細微的差距。

模型綜合概率評估方法

????????為了保證玩家的抽卡體驗,現(xiàn)在的抽卡機制都會比較復雜,其綜合概率難以簡單的直接算出,因此在設(shè)計這類抽卡機制時需要借助其他工具輔助計算概率。

1.?蒙特卡洛模擬法

????????又稱統(tǒng)計試驗法,思想是通過對某一隨機事件進行大量模擬,以隨機事件出現(xiàn)的頻率估計其概率。此方法優(yōu)點是能夠解決有統(tǒng)計性質(zhì)的問題,相較于其他方法可以快速估算十分復雜的模型的概率。缺點是隨機模擬始終有誤差,不能得到精確值,想要提高精度時計算量大。

舉例:現(xiàn)有一抽卡模型,抽到某物品的概率初始為1%,每次抽卡沒有抽到此物品時,下次抽到本物品的概率上升1%,抽到了此物品時下次抽卡抽到此物品的概率重置為0。問抽到特定物品的綜合概率是多少?

????????最樸素的想法是模擬抽一千萬次,觀察抽取物品出現(xiàn)的頻率,用頻率來估計綜合概率。

????????運行一次代碼,模擬一千萬次抽卡后,一共抽到了819161次物品,認為綜合概率約8.19%

????????但是由于隨機性,每次運行得到的值都會不一樣。樸素的做法無法得知估計概率的精確度如何,這個時候需要對樸素的方法進行改進。尋找一個滿足重復試驗獨立同分布的隨機變量以應用大數(shù)定律,這里選取抽到物品需要的抽數(shù)。抽取很多次物品,每次抽到物品花費的抽數(shù)是獨立同分布的隨機變量序列,可對其運用中心極限定理獲知花費抽數(shù)的平均值近似于服從正態(tài)分布。

????????以上代碼具體說明略。運行以上代碼,給出了一個8.187%到 8.203%的區(qū)間,實際值落在這個區(qū)間內(nèi)的可能性約為95%,雖然每次運行得到的區(qū)間會不一樣,但是我們知道了得到數(shù)字的置信水平。要提高模擬的精度實際上就是減小這個區(qū)間的長度。由中心極限定理,要讓區(qū)間縮小十倍,模擬次數(shù)需要變?yōu)樵镜囊话俦?,因此想要提高模擬值的精度計算開銷很大。

2.?使用期望計算綜合概率

????????隨機變量的數(shù)學期望又稱均值,對于離散的變量X其期望為E(X)%3D%5Csum_%7Bi%3D1%7D%5E%7B%2B%5Cinfty%7Dx_ip_i

舉例:同樣對于以上模型,用數(shù)學期望計算綜合概率。

????????設(shè)在第i抽抽到物品的概率為p_i。由于抽卡規(guī)則保證依照數(shù)學期望的定義,抽到物品花費的平均抽數(shù)為E(X)%3D%5Csum%5Cnolimits_%7Bi%3D1%7D%5E%7B100%7Di%5Ccdot%20%20p_i,取期望抽數(shù)的倒數(shù)1%2FE(X)即是綜合概率。

????????計算得此模型抽到物品的綜合概率為8.19003%,這個值的誤差只取決于計算機浮點誤差。

3.?使用概率轉(zhuǎn)移矩陣計算概率

????????很多復雜的模型期望難算,并不適合采用期望去計算綜合概率。

????????網(wǎng)友Labrarinth指出可以使用概率轉(zhuǎn)移矩陣計算,這個方法非常經(jīng)典且通用,概念更明確直觀,并能處理較復雜的問題。

舉例:現(xiàn)有一抽卡模型有A/B兩種物品,A物品的初始概率為50%,B物品的初始概率為10%。當上一次沒有抽到A物品時,本次一定能抽到A物品。問抽到A/B物品的綜合概率各是多少?

????????這個抽卡模型滿足一階馬爾科夫性質(zhì),每次抽卡抽到特定物品的概率只和前一次抽卡有關(guān)。

本次抽到物品關(guān)于上次抽到物品的條件概率分布律

????????可以畫出狀態(tài)轉(zhuǎn)移圖

舉例抽卡模型的概率轉(zhuǎn)移圖

????????設(shè)某時刻的狀態(tài)可以用一個向量X_t來表示,其中P_A表示本抽抽到A物品的概率,P_B表示本抽抽到B物品的概率,P_N表示本抽沒抽到的概率,則下一個時刻的狀態(tài)向量X_%7Bt%2B1%7D%3DM%5Ccdot%20X_%7Bt%7D

X_%7Bt%2B1%7D%3D%0A%5Cleft%5B%0A%5Cbegin%7Bmatrix%7D%0A%5Cfrac%7B1%7D%7B2%7D%20%20%26%201%20%20%261%5C%5C%0A%5Cfrac%7B1%7D%7B10%7D%20%20%26%200%20%20%260%5C%5C%0A%5Cfrac%7B2%7D%7B5%7D%20%20%26%200%20%20%260%5C%5C%0A%5Cend%7Bmatrix%7D%0A%5Cright%5D%0A%5Ccdot%20X_t%0A%5Cquad%5Cquad%0AX_t%3D%0A%5Cleft%5B%0A%5Cbegin%7Bmatrix%7D%0AP_A%5C%5C%0AP_B%5C%5C%0AP_N%5C%5C%0A%5Cend%7Bmatrix%7D%0A%5Cright%5D

????????想要知道抽數(shù)趨于無窮時的綜合概率,即求X_%7Bt_%5Cinfty%7DP_AP_B的值。由于馬爾科夫概率轉(zhuǎn)移矩陣最大特征值為1,當概率轉(zhuǎn)移矩陣相乘次數(shù)趨于無窮時,趨于取特征值1對應的特征向量%5Cleft%5B%0A%5Cbegin%7Bmatrix%7D%0AA%26B%26N%5C%5C%0A%5Cend%7Bmatrix%7D%0A%5Cright%5D%5E%7BT%7D,%7BA%7D%2F(%7BA%2BB%2BN%7D)%2C%20%7BB%7D%2F(%7BA%2BB%2BN%7D)即是A/B對應的綜合概率。

????????計算可知A物品的綜合概率為2/3,B物品的綜合概率為1/15。

4.?動態(tài)規(guī)劃

????????動態(tài)規(guī)劃也是一種常用的方法。在這里動態(tài)規(guī)劃的方法和概率轉(zhuǎn)移矩陣的方法本質(zhì)上是相同的,都是依賴某時刻的抽卡結(jié)果僅和過去的抽卡結(jié)果相關(guān)的性質(zhì)。不同之處是動態(tài)規(guī)劃可以更自由的設(shè)計狀態(tài),研究復雜的問題。

舉例:對于以上模型,計算第5次抽卡后抽到至少4個A物品的概率。

????????定義狀態(tài)S%5Bi%5D%5Bj%5D%5B1%5D表示第i次抽卡后抽到了A物品,并累計抽到了j個A物品的狀態(tài),S%5Bi%5D%5Bj%5D%5B0%5D表示第i次抽卡后沒有抽到A物品,但累計抽到了j個A物品的狀態(tài)。

????????寫出狀態(tài)轉(zhuǎn)移方程:

S%5Bi%5D%5Bj%5D%5B0%5D%3D%5Cfrac%7B1%7D%7B2%7D%20S%5Bi-1%5D%5Bj%5D%5B1%5D%5C%5CS%5Bi%5D%5Bj%5D%5B1%5D%3D%5Cfrac%7B1%7D%7B2%7D%20S%5Bi-1%5D%5Bj-1%5D%5B1%5D%2BS%5Bi-1%5D%5Bj-1%5D%5B0%5D

????????置初始狀態(tài)S[0][0][1]=1,進行遞推后取出S[5][4][1]、S[5][5][1]、S[5][4][0]之和0.3125即為所求。


抽卡機制分析工具分享的評論 (共 條)

分享到微博請遵守國家法律
滕州市| 翁源县| 乐平市| 二连浩特市| 湛江市| 保德县| 阜阳市| 彝良县| 洛宁县| 乌兰县| 合肥市| 德庆县| 营山县| 大庆市| 娄烦县| 马公市| 云林县| 巩义市| 轮台县| 浮梁县| 饶阳县| 通榆县| 贵港市| 嵊州市| 马山县| 慈溪市| 和平区| 北宁市| 普兰县| 北海市| 昆山市| 云安县| 石狮市| 南乐县| 平潭县| 梅河口市| 万载县| 霍山县| 鄂伦春自治旗| 津南区| 大同市|