Отрицательные случайные числа - PullRequest
6 голосов
/ 28 октября 2011

Я знаю, как генерировать числа с помощью Rails, но я не знаю, как генерировать отрицательные числа?

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

Случайный документ говорит, что вы получите ArgumentError.

Ответы [ 5 ]

9 голосов
/ 28 октября 2011

Допустим, вы хотите сгенерировать число между a и b, вы всегда можете сделать это, используя следующую формулу:

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

Так, если вы хотите число от -8 до +7, например, тогда a = -8 и b = 7, и ваш код будет

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

, что эквивалентно

randomNum=15*prng.rand - 8
6 голосов
/ 18 ноября 2013

Предположим, вы хотите сгенерировать отрицательные числа от -1 до -5

Вы можете просто сделать это:

rand(-5..-1)

Будет сгенерировано случайное число от -5 до -1 * 1006.*

5 голосов
/ 28 октября 2011

Как насчет умножить положительное случайное число на -1

3 голосов
/ 28 октября 2011
def rand(a, b)
  return Random.rand(b - a + 1) + a 
end
rand(-3, 5)
0 голосов
/ 28 ноября 2014

Мне нужно было сгенерировать случайное целое число, 1 или -1, и я использовал это:

prng = Random.new(1)    
prng.rand > 0.5 ? 1 : -1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...