Re: [閒聊] Yasuo Bug?

作者: ravensweep (可撥仔)   2018-06-19 12:16:21
※ 引述《ericpan70096 (廢文初心者)》之銘言:
: 如圖,有人知道為什麼會有爆擊嗎= =?
: 主符文:
: 征服者、凱旋、血脈、致命一擊
: 副符文:
: 即刻衝擊、噬血獵人
: https://i.imgur.com/t2g0vx9.jpg
前提: 小弟不是遊戲從業人員也不是資工專業
假設: 不是Bug產生的爆擊而是遊戲機制的話
猜測: 爆擊產生的機制是在每次攻擊的時候
隨即亂數產生一個介於0到100的數字
然後執行if條件判斷
if (RandomNumber 小於等於 CritChance)
then (Critical Strike)
在這個機制下,給定英雄爆擊率1%的話:
如果產生的隨機亂數是給到整數位(0-100,共101個情況),有0跟1兩個情況會爆擊,爆擊率變成2/101=1.98%
我們繼續增加亂數的小數位數,
1位小數的時候(0.0-100.0,共1001個情況),有0.0-1.0共11個情況會爆擊,爆擊率是11/1001=1.098%
2位小數的時候(0.00-100.00,共10001個情況),有0.00-1.00共101個情況會爆擊,爆擊率是101/10001=1.0098%
3位小數的時候(0.000-100.000,共100001個情況),有0.000-1.000共1001個情況會爆擊,爆擊率是1001/100001=1.00098%
4位小數的時候(0.0000-100.0000,共1000001個情況),有0.0000-1.0000共10001個情況會爆擊,爆擊率是10001/1000001=1.000098%
依此類推可以發現,當亂數的小數位數足夠多的時候,程式產生的爆擊率近似給定的英雄爆擊率
衍生出的問題變成,當給定英雄爆擊率0%並且產生的亂數是4位小數,那麼有1/1,000,001的情況會產生數值等於0.0000的隨機變數,而這個變數在條件判斷的時候會判定爆擊,換句話說,有大約百萬分之一的機率會在英雄0%爆擊的時候爆擊
當然,亂數的小數位給的越多,這個情況產生的機率越低,又或者,可以多寫一個條件判斷處理這個特例,但我猜這是一個Trade-off: 是不是有必要為了這個百萬分之一甚至更低的情況,在每次攻擊的時候都多執行一個if條件判斷
大guy4這樣
作者: LegendDragon (幼稚的人)   2018-06-19 12:33:00
原來是數學版我以為是lol版。
作者: ericpan70096 (廢文初心者)   2018-06-19 12:36:00
我記得r社的是pseudo,好像會有補償機制感謝回應><

Links booklink

Contact Us: admin [ a t ] ucptt.com