戈朗中的非均匀分布随机

引自英雄联盟

暴击的概率根据暴击的次数动态变化。如果一次攻击没有对多次尝试进行严重打击,则未来尝试的概率将逐渐增加 - 反之亦然,其中多次成功的关键打击将导致未来尝试的概率逐渐降低。

如果我理解正确,事件出现的机会逐渐受到以前时间的影响,即 随机化,对吧?在 中有这样的随机化算法吗?如果没有,我们该如何实施呢?non-uniform distributiongolangmath/rand


蓝山帝景
浏览 88回答 1
1回答

紫衣仙女

这似乎微不足道地实现给定或。没有看到你的代码,很难给出太多的代码。rand.Float32()rand.Float64()您可以重复对均匀浮点数进行采样,并与不同的成功概率进行比较。这种概率在未命中时上升,在命中时下降。例如:func did_crit_hit(prob_success *float64) bool {&nbsp; &nbsp; p := *prob_success&nbsp; &nbsp; hit := rand.Float64() < p&nbsp; &nbsp; if hit {&nbsp; &nbsp; &nbsp; &nbsp; p = math.Max(0, p - 0.1)&nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; p = math.Min(1, p + 0.1)&nbsp; &nbsp; }&nbsp; &nbsp; *prob_success = p&nbsp; &nbsp; return hit}你可能想做一些更复杂的事情,而不仅仅是通过一个固定的增量来改变,但希望这能给你一个想法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go