generate a random number with 7 digits
我怎样才能产生100万到1000万之间的随机数呢?
兰德(10)行,我试过兰德(1.10),但没用。
取您的基数1000000,然后添加一个从0到最大起始数的随机数:
1 | 1_000_000 + Random.rand(10_000_000 - 1_000_000) #=> 3084592 |
它是一个实例方法:
1 | puts Random.new.rand(1_000_000..10_000_000-1) |
我觉得这个更易读:
1 | 7.times.map { rand(1..9) }.join.to_i |
或者,如果性能不是问题,而且您不想计算零:
1 | (0...7).map { |i| rand((i == 0 ? 1 : 0)..9) }.join.to_i |
这将生成一个介于1000000和9999999之间的随机数。
1 | rand(10_000_000-1_000_000)+1_000_000 |
这项工作在1.8.7没有任何宝石(端口等)。
另一个与Ruby1.8.7兼容的选项:
rand(9999999999).to_s.center(10, rand(9).to_s).to_i