Negative random numbers
我知道如何用Rails生成数字,但我不知道如何生成负数?
1
| prng.rand(1..6) for random of [1, 2, 3, 4, 5, 6] |
Random Doc说你会得到一个参数错误。
- 你可能不想打电话给Random.new,除非你知道后果。相反,只需自己打电话给rand。
- 随机随机随机随机-5..5.请检查:stackoverflow.com/questions/198460/…
假设您希望生成一个介于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 |
- randomnum=(7-(-8))*prng.rand(0..1)+(-8)这不会产生50%的概率吗?(使用prng.rand时为0(0..1)
- @唤醒是的,你是正确的,用prng.rand代替生成0和1之间的随机统一数。
假设要生成介于-1到-5之间的负数
您只需执行以下操作:
它将生成-5到-1之间的随机数
- 唯一粗鲁的回答…也许可以添加从哪个Ruby版本开始这是可能的。
把正随机数乘以-1怎么样
- 是的,但是你会得到100%的负数,我想做的是,如果我做prng.rand(-10..10),在正数和负数之间保持平衡。但这不应该因为争论而起作用,不是吗?
- 然后0…10减去20!
1 2 3 4
| def rand(a, b)
return Random.rand(b - a + 1) + a
end
rand(-3, 5) |
- 谢谢!今晚我要测试一下!
- 如果A和B都是负的,这不会失败吗?
- 嗯,我刚用兰德公司的(-9,-5)测试过,它似乎还可以正常工作。只要确保-9是第一个,因为它是二者中的较小者。
- 如果你做兰德(-9,-5),你会得到随机的。兰德(-5-(-9)+1+(-9)=Random.兰德(5)-9…如果rand返回5而不是5-9=-4,则该值不在(-9,-5)的范围内。
- 好的,这个问题有什么解决办法吗?
- random.rand(5)从0-4返回一些内容,因此它不能返回5:)
- 我错了。比这更好。
我需要生成一个随机整数,1或-1,我使用这个:
1 2
| prng = Random.new(1)
prng.rand > 0.5 ? 1 : -1 |