为了账号安全,请及时绑定邮箱和手机立即绑定

戈朗中的非均匀分布随机

戈朗中的非均匀分布随机

Go
蓝山帝景 2022-09-12 20:48:12
引自英雄联盟:暴击的概率根据暴击的次数动态变化。如果一次攻击没有对多次尝试进行严重打击,则未来尝试的概率将逐渐增加 - 反之亦然,其中多次成功的关键打击将导致未来尝试的概率逐渐降低。如果我理解正确,事件出现的机会逐渐受到以前时间的影响,即 随机化,对吧?在 中有这样的随机化算法吗?如果没有,我们该如何实施呢?non-uniform distributiongolangmath/rand
查看完整描述

1 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

这似乎微不足道地实现给定或。没有看到你的代码,很难给出太多的代码。rand.Float32()rand.Float64()


您可以重复对均匀浮点数进行采样,并与不同的成功概率进行比较。这种概率在未命中时上升,在命中时下降。


例如:


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

}

你可能想做一些更复杂的事情,而不仅仅是通过一个固定的增量来改变,但希望这能给你一个想法。


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信