【问题标题】:Normal distribution curve and random number in LUALUA中的正态分布曲线和随机数
【发布时间】:2020-05-05 18:35:21
【问题描述】:

假设我有一个 1-1000 的数字范围。 math.random(1,1000) 会给我获得每个数字的平等机会。而不是这个,我想制作一条分布曲线,使获得 1 的机会等于获得 1000 的机会,但获得 500 的机会更常见。我该怎么做呢?

【问题讨论】:

    标签: math random lua numbers normal-distribution


    【解决方案1】:
    function norm1000()
       local x 
       repeat
          x = math.ceil(math.log(1/math.random())^.5*math.cos(math.pi*math.random())*150+500)
       until x >= 1 and x <= 1000
       return x
    end
    

    【讨论】:

    • 请在您的答案中不仅仅包含代码。您从哪里获得您使用的公式以及它与正态分布的接近程度?
    • @StefanFabian - Where did you get the formula you're using - 这个公式被广泛使用,顺便说一句,这是一个很好的练习来证明它的数学正确性。 how closely does it approximate a normal distribution - 这取决于您系统上的 math.random() 质量。
    • @StefanFabian - 在这个编程网站上讨论数学是题外话。但是您可以在math.stackexchange.com 上询问有关此公式的问题
    • 我并没有真正要求自己。引用您的资源并给出简短的解释而不是仅仅将代码扔在那里是一种很好的风格。人们不应该只是在不理解代码的情况下复制您的代码,这只是鼓励这样做。
    • @StefanFabian - 您可以通过建议编辑来改进我的答案。或者,您可以根据自己对一个好的答案应该是什么样子的看法来编写自己的答案。不要害羞,随时参与使 SO 答案变得更好!
    猜你喜欢
    • 2011-05-27
    • 2017-07-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2016-10-04
    • 2016-02-03
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多