关于ruby:负的随机数

Negative random numbers

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

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

Random Doc说你会得到一个参数错误。


假设您希望生成一个介于a和b之间的数字,您可以使用以下公式执行此操作:

1
randomNum = (b-a)*prng.rand + a

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

1
randomNum = (7-(-8))*prng.rand + (-8)

相当于

1
randomNum=15*prng.rand - 8


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

您只需执行以下操作:

1
rand(-5..-1)

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


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


1
2
3
4
def rand(a, b)
  return Random.rand(b - a + 1) + a
end
rand(-3, 5)


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

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