【问题标题】:Lua non-integer randomiseLua 非整数随机化
【发布时间】:2019-11-25 22:53:01
【问题描述】:

我是 LUA 的新手,在使用函数 math.random(...) 时需要代码方面的帮助。问题是如果我需要生成我刚刚使用的整数值

math.random(-1, 1) -- This is gonna be -1, 0 or 1. Profit.

但如果我需要介于 -1 和 0 之间的非整数?

math.random(-1.0, 1.0) -- Still -1, 0 or 1. No profit.

我尝试使用这个:-1.01, 1.01,但它不会在我需要的值之间生成一个数字。

如何生成 1 到 0 之间的非整数值?

【问题讨论】:

  • 我认为您的问题有误,math.random() 生成的随机值介于 0 和 1 之间。
  • @poorandunlucky 是的,我想我只是忘记了,但我的意思是我需要在 x 和 y 变量之间生成非整数值,而不仅仅是 1 和 0。

标签: random lua random-seed


【解决方案1】:

不带参数,math.random 返回一个介于 0 和 1 之间的浮点数。您可以通过乘加得到其他范围:

math.random() * 2 - 1

或更笼统地说:

math.random() * (maximum - minimum) + minimum

【讨论】:

  • 嘿,谢谢!有没有办法可以限制我使用math.random() * (maximum - minimum) + minimum 获得的值的分数?例如,如果我使用math.random(-1.1, 1.1),我只能从价值中获得十分之一(x point y),或者如果我使用math.random(-1.11, 1.11),我将从价值中获得一百(x point yz)。但是使用这个我得到了很大一部分。
  • 您只需要对输出进行四舍五入,还是真的需要一个正好在百分之一的数字?不管怎样,这听起来应该是一个单独的问题。
  • 我猜你是对的。我只是好奇,因为原来的方式是这样工作的,所以它会非常有用。
【解决方案2】:

您也可以执行类似 math.random(-1, 1) + ( math.random(1, 99) / 100 ) 的操作。希望这会有所帮助。 math.random 只会得到整数和整数。不幸的是,它不会返回浮点数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2014-03-15
    • 1970-01-01
    • 1970-01-01
    • 2015-11-11
    • 2013-12-18
    • 1970-01-01
    相关资源
    最近更新 更多