如何生成1百万到1千万的随机数。
rand(10)有效,我尝试了rand(1..10)但是没有用。
答案 0 :(得分:13)
获取您的基数1,000,000并添加一个从0到最大起始编号的随机数:
1_000_000 + Random.rand(10_000_000 - 1_000_000) #=> 3084592
答案 1 :(得分:6)
这是一个实例方法:
puts Random.new.rand(1_000_000..10_000_000-1)
答案 2 :(得分:1)
这将生成1,000,000到9,999,999之间的随机数。
rand(10_000_000-1_000_000)+1_000_000
这适用于1.8.7,没有任何宝石(backports等)。
答案 3 :(得分:1)
或者,如果性能不是问题,并且您不想计算零:
(0...7).map { |i| rand((i == 0 ? 1 : 0)..9) }.join.to_i
答案 4 :(得分:1)
我发现这更具可读性:
7.times.map { rand(1..9) }.join.to_i
答案 5 :(得分:0)
兼容ruby 1.8.7的另一个选择:
rand(9999999999).to_s.center(10,rand(9).to_s).to_i