Ruby 负随机数

Ruby 负随机数,ruby,random,generator,Ruby,Random,Generator,我知道如何使用Rails生成数字,但我不知道如何生成负数 prng.rand(1..6) for random of [1, 2, 3, 4, 5, 6] 表示您将得到一个ArgumentError。将正随机数乘以-1怎么样 randomNum = (b-a)*prng.rand + a 例如,如果你想要一个介于-8和+7之间的数字,那么a=-8和b=7,你的代码是 randomNum = (7-(-8))*prng.rand + (-8) 这相当于 randomNum=15*prng.r

我知道如何使用Rails生成数字,但我不知道如何生成负数

prng.rand(1..6) for random of [1, 2, 3, 4, 5, 6]

表示您将得到一个ArgumentError。

将正随机数乘以-1怎么样

randomNum = (b-a)*prng.rand + a
例如,如果你想要一个介于-8和+7之间的数字,那么a=-8和b=7,你的代码是

randomNum = (7-(-8))*prng.rand + (-8)
这相当于

randomNum=15*prng.rand - 8

假设要生成-1到-5之间的负数

您可以简单地执行以下操作:

rand(-5..-1)

它将生成-5到-1之间的随机数

我需要生成一个随机整数,1或-1,我使用了这个:

prng = Random.new(1)    
prng.rand > 0.5 ? 1 : -1

您可能不想调用Random.new,除非您知道这样做的后果。相反,只需自己调用
rand
。rand.rand(-5..5)。请检查:是的,但你将得到100%的负数。如果我做prng.rand(-10..10),我想做的是平衡正负数。但是这不应该工作,因为ArgumentError不?然后去0…10减去20!randomNum=(7-(-8))*prng.rand(0..1)+(-8)这不会产生一个50%的概率吗?(当你的prng.rand(0..1)为0时@Awake是的,你是正确的,用prng.rand在0和1之间生成一个随机的统一数,如果a和b都为负值,这不会失败吗?嗯,我刚刚用rand(-9,-5)测试了一下,它似乎还可以正常工作。只要确保-9是第一个,因为它是两者中较小的一个。如果你用rand(-9,-5)你会得到Random.rand(-5-(-9)+1+(-9)=Random.rand(5)-9…如果rand返回的值大于5-9=-4,并且不在(-9,-5)的范围内,那么这个问题有什么解决方案吗?Random.rand(5)从0-4返回某个值,所以它不能返回5:)唯一的rubyesque答案。。。可能会添加,因为这是可能的ruby版本。
prng = Random.new(1)    
prng.rand > 0.5 ? 1 : -1