Re: [問題] ARAM真的是隨機給角色嗎

作者: Cupman (假韓國人)   2024-05-01 01:21:05
在不考慮玩家對角色喜好度、以及角色的擁有率的前提下
我個人不認為ARAM的會有「某類角色出現機率較高」的問題。
原因很單純,就跟之前大家常討論的「連敗組存不存在」議題一樣:
1.我想不到讓某些角色出現機率高,對營收或留存能有什麼明顯的影響(相反的還有破壞
遊戲體驗的可能)
2.就憑RIOT的規模,我不認為如此世界級遊戲大廠的國際工程師會搞不定區區一個隨機問
題。
小弟不是什麼程式碼專家,但簡單的機率模擬應該還是可以試試看
以下內容如果有錯誤,請前輩多多指教。
首先根據英雄聯盟的WIKI百科,截至目前為止,LOL共有167名角色。
而ARAM中的骰子數量,我如果沒記錯的話是根據你擁有的角色數量進行補充,
全角色的話每場就都會補一個骰子。
我們假設每場遊戲每個玩家都能補1個骰子,並且都有穩定消耗
那代表一場遊戲平均一個隊伍就會有10隻可選用的角色。
以下python程式碼是我試著模擬:
這遊戲共有167角色,如果每場隨機抽10個可以選用
平均需要經過幾場,才會讓167個角色全部出現一遍?
-------------
import random
#遊戲共167個角色
all_char=[]
for i in range(0,167):
all_char.append(i)
try_count=0
#測試1000次
for i in range(0,1000):
char_total=[] #已出現過的角色
while len(char_total) !=167:
char_round=random.sample(all_char, 10)
#char_round代表該局隨機抽10隻可選用的角色
for char in char_round:
if char not in char_total:
char_total.append(char)
try_count+=1
#計算1000次的平均
print(try_count/1000)
-------------
我試了好幾次,出來的數字大概都在92~93
意思是,平均要玩92~93場左右,你才會讓所有角色都出現過一遍
即便把敵對的五隻角色考慮進來
(中間改成char_round=random.sample(all_char, 15))
這個數字也在60~61左右
再考慮到:
1.並非所有玩家都是全角色(影響骰子數、會出現的角色)
2.對面5隻角色會是他們所有可選用角色中相對較熱門的5隻
3.玩家拿到熱門角色時傾向不消耗骰子替換
4.有幾隻免角會固定在AR的角色池
實際數字一定比這個又更大
結論就是,即便機率全部是正常的
對每個玩家的經驗而言
他最近幾十場甚至超過一百場遊戲
多少有幾個角色一直都沒出現,機率上來說是很正常的

Links booklink

Contact Us: admin [ a t ] ucptt.com