引自英雄聯(lián)盟:暴擊的概率根據(jù)暴擊的次數(shù)動態(tài)變化。如果一次攻擊沒有對多次嘗試進(jìn)行嚴(yán)重打擊,則未來嘗試的概率將逐漸增加 - 反之亦然,其中多次成功的關(guān)鍵打擊將導(dǎo)致未來嘗試的概率逐漸降低。如果我理解正確,事件出現(xiàn)的機(jī)會逐漸受到以前時間的影響,即 隨機(jī)化,對吧?在 中有這樣的隨機(jī)化算法嗎?如果沒有,我們該如何實(shí)施呢?non-uniform distributiongolangmath/rand
1 回答

紫衣仙女
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個贊
這似乎微不足道地實(shí)現(xiàn)給定或。沒有看到你的代碼,很難給出太多的代碼。rand.Float32()rand.Float64()
您可以重復(fù)對均勻浮點(diǎn)數(shù)進(jìn)行采樣,并與不同的成功概率進(jìn)行比較。這種概率在未命中時上升,在命中時下降。
例如:
func did_crit_hit(prob_success *float64) bool {
p := *prob_success
hit := rand.Float64() < p
if hit {
p = math.Max(0, p - 0.1)
} else {
p = math.Min(1, p + 0.1)
}
*prob_success = p
return hit
}
你可能想做一些更復(fù)雜的事情,而不僅僅是通過一個固定的增量來改變,但希望這能給你一個想法。
- 1 回答
- 0 關(guān)注
- 99 瀏覽
添加回答
舉報
0/150
提交
取消