如何生成一个范围在一百万到一千万之间的随机数?
rand(10)
可以用,但是我尝试了 rand(1..10)
,它不起作用。
拿你的基础数字1,000,000,加上0到你的最大值之间的一个随机数 - 起始数字:
1_000_000 + Random.rand(10_000_000 - 1_000_000) #=> 3084592
这是一个实例方法:
puts Random.new.rand(1_000_000..10_000_000-1)
1_000_000...10_000_000
更符合 Ruby 的风格。 - sawa7.times.map { rand(1..9) }.join.to_i
(0...7).map { |i| rand((i == 0 ? 1 : 0)..9) }.join.to_i
这将生成一个介于 1,000,000 和 9,999,999 之间的随机数。
rand(10_000_000-1_000_000)+1_000_000
这在1.8.7中可用,无需任何宝石(后备等)。
使用 Ruby 1.8.7 兼容的另一种选择:
rand(9999999999).to_s.center(10, rand(9).to_s).to_i
require 'random'
,并检查它是否仅限于1.9.2吗? - Andrew Grimmrand
,而不是Random.rand
。它可以在 1.6.0 版本及更早的版本中使用。 - Joshua Cheek