生成一个7位数的随机数

时间:2011-04-19 21:22:38

标签: ruby

如何生成1百万到1千万的随机数。

rand(10)有效,我尝试了rand(1..10)但是没有用。

6 个答案:

答案 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