Используйте rand(range)
От [1 119] Случайные числа Ruby :
, Если бы Вам было нужно случайное целое число для моделирования списка шестистороннего, умирают, Вы использовали бы:
1 + rand(6)
. Список в костях мог быть моделирован с2 + rand(6) + rand(6)
.Наконец, если Вам просто нужно случайное плавание, просто вызов
rand
без аргументов.
Как [1 120] Marc-AndrГ© Lafortune упоминает в [1 121] его ответ ниже (пойдите upvote это) , Ruby 1.9.2 имеет свое собственное Random
класс (который сам Marc-AndrГ© помог отладить , следовательно 1.9.2 целей для той функции).
, Например, в этом игра, где необходимо предположить 10 чисел , можно инициализировать их с:
10.times.map{ 20 + Random.rand(11) }
#=> [26, 26, 22, 20, 30, 26, 23, 23, 25, 22]
Примечание:
Используя Random.new.rand(20..30)
(использование Random.new
) обычно не была бы хорошая идея, как объяснено подробно (снова) [1 126] Marc-AndrГ© Lafortune , в [1 127] его ответ (снова).
, Но если Вы не используете Random.new
, тогда , метод класса rand
только берет max
значение, не Range
, как [1 129], перила (энергично) указывают в комментарии (и, как зарегистрировано в эти документы для [1 112] ). Только метод экземпляра может взять Range
, как проиллюстрировано [1 132] генерируют случайное число с 7 цифрами .
, Поэтому эквивалент [1 114] был бы 20 + Random.rand(11)
, с тех пор Random.rand(int)
возвраты “a случайное целое число, больше, чем или равен нулю и меньше, чем аргумент .” 20..30
включает 30, я должен придумать случайное число между 0 и 11, исключая 11.
Эта ошибка означает, что есть дополнительные данные после того, как читатель загрузил то, что он считает XML-документом. Убедитесь, что ваш XML-файл не содержит данных после последнего закрывающего элемента и что XmlReader
инициализирован для чтения из корневого элемента или начала файла и ничего больше.