【问题标题】:How Can I Program A Biased Number Generator That Includes Decimals - Lua如何编写包含小数的有偏数字生成器 - Lua
【发布时间】:2021-11-09 19:10:45
【问题描述】:

我怎样才能做到这一点,以便我可以为 1.0-10.0 之间的每个数字分配一个值,以确定它被选中的机会,如果可能的话,不使用大量的 if 语句?

它是如何工作的:

1.0 = 1%, 1.1 = 1.1%, 1.2 = 1.5%, 1.3 = 1.7%,直到 1.9,这将使 1.0-2.0 有 10% 的机会被选中

1.0-2.0 的几率第二高,2.0-4.0 的几率最高,4.0 5.0 的几率第三,5.0-6.0 的几率第四,6.0-7.0 的几率第五,7.0- 8.0 会有第六个,依此类推,直到 10.0

【问题讨论】:

  • “1.0 = 1%, 1.1 = 1.1%, 1.2 = 1.5%, 1.3 = 1.7%, 直到 1.9 这将使 1.0-2.0 有 10% 的机会被选中”不确定你的数学在那里做了,但它没有为我检查。
  • “如果可能的话,不使用大量的 if 语句”——你可以将权重放在一个表中,并在一个条件下使用一个循环,但实际上,它对我来说看起来是一样的。

标签: lua lua-table


【解决方案1】:

根据您的概率填充具有足够数量值的表,并从该表中随机抽取。这应该是最简单的方法。

例如,制作一个包含 1000 个元素的表格,前 10 个元素的值为 1.0(因此,如果它是随机绘制的,则概率为 1%),然后是 11 个元素为 1.1,15 个元素为 1.2,依此类推。

【讨论】:

    猜你喜欢
    • 2020-07-24
    • 2012-09-12
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多