PTT推薦

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

看板LoL標題Re: [問題] ARAM真的是隨機給角色嗎作者
Cupman
(啊拉啊啦啦)
時間推噓 7 推:7 噓:0 →:6

在不考慮玩家對角色喜好度、以及角色的擁有率的前提下

我個人不認為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的角色池

實際數字一定比這個又更大




結論就是,即便機率全部是正常的

對每個玩家的經驗而言

他最近幾十場甚至超過一百場遊戲

多少有幾個角色一直都沒出現,機率上來說是很正常的




--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.163.182.235 (臺灣)
PTT 網址

Alixwaltz 05/01 01:22聽君一席話 如聽一席話 但還是謝謝專業計算

※ 編輯: Cupman (1.163.182.235 臺灣), 05/01/2024 01:25:28

st2k8 05/01 01:35通常要加權調整也是會偷偷抽得更平均,因為人只要

st2k8 05/01 01:35稍微遇到幾次重複就會覺得隨機有問題,反之你沒事

st2k8 05/01 01:36根本不會突然覺得哇真的很隨機耶

kelvin0004 05/01 03:40反而比較可能為了使用者感受 刻意使用偽隨機來平均

PurPkNighT 05/01 05:41其實就和歌單隨機播放一樣 有些播放器會故意弄把機

PurPkNighT 05/01 05:41率弄偏差一點 以讓使用者體驗感受更隨機

davidliudmc 05/01 08:58結論就是沒有結論 花了整篇文章論證前面提過的東西

ericlee1024 05/01 09:31曾經連三場開局同角色 個人覺得不太可能完全隨機

asd810733 05/01 10:33一百多隻角色 如果你只想玩某幾隻 推薦你玩召喚峽谷

asd810733 05/01 10:33 想玩誰玩誰

leon890820 05/01 14:32用調和級數就可以算了,期望值為sum(1/k)*k

leon890820 05/01 14:33當k=167時大約=951,也就是95場會出完所有角色