Генерировать случайное число с 7 цифрами Как я могу создать случайное число в диапазоне от 1 миллиона до 10 миллионов. rand (10) работает, я попробовал rand (1..10), и это не сработало. Ответ 1 Возьмите свой базовый номер, 1,000,000 и добавьте случайное число от 0 до вашего максимального - стартовый номер: 1_000_000 + Random.rand(10_000_000 - 1_000_000) #=> 3084592 Ответ 2 Это метод экземпляра: puts Random.new.rand(1_000_000..10_000_000-1) Ответ 3 Это приведет к случайному числу от 1 000 000 до 9999 999. rand(10_000_000-1_000_000)+1_000_000 Это работает в 1.8.7 без каких-либо драгоценных камней (backports и т.д.). Ответ 4 Или, если производительность не является проблемой, и вы не хотите считать нули: (0...7).map { |i| rand((i == 0 ? 1 : 0)..9) }.join.to_i Ответ 5 Я считаю это более читаемым: 7.times.map { rand(1..9) }.join.to_i Ответ 6 Другой вариант с совместимостью ruby 1.8.7: rand (9999999999).to_s.center(10, rand (9).to_s).to_i
Ответ 1 Возьмите свой базовый номер, 1,000,000 и добавьте случайное число от 0 до вашего максимального - стартовый номер: 1_000_000 + Random.rand(10_000_000 - 1_000_000) #=> 3084592
Ответ 3 Это приведет к случайному числу от 1 000 000 до 9999 999. rand(10_000_000-1_000_000)+1_000_000 Это работает в 1.8.7 без каких-либо драгоценных камней (backports и т.д.).
Ответ 4 Или, если производительность не является проблемой, и вы не хотите считать нули: (0...7).map { |i| rand((i == 0 ? 1 : 0)..9) }.join.to_i
Ответ 6 Другой вариант с совместимостью ruby 1.8.7: rand (9999999999).to_s.center(10, rand (9).to_s).to_i