生成一个7位数的随机数
如何生成100万到1000万的随机数。
兰德(10)工作,我尝试兰德(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到9,999,999之间的随机数。
rand(10_000_000-1_000_000)+1_000_000
这适用于1.8.7,没有任何gem(backports等)。
或者,如果性能不是问题,并且您不想计算零:
(0...7).map { |i| rand((i == 0 ? 1 : 0)..9) }.join.to_i
我发现这更具可读性:
7.times.map { rand(1..9) }.join.to_i
兼容ruby 1.8.7的另一个选择:
rand(9999999999).to_s.center(10,rand(9).to_s).to_i
- Rails,activerecord:self vs self.attribute
- 电子邮件附件
- 使用HTTParty检索JSON时“嵌套太深”错误
- Rubygems被Norton DNS阻止
- 为什么ActiveRecord :: StatementInvalid:SQLite3 :: SQLException:near“)”:语法错误:INSERT INTO“user_friendships”()VALUES()
- Unix域套接字“/var/pgsql_socket/.s.PGSQL.5432”上的PostgreSQL权限被拒绝错误 – Lion Server 10.7.3或Lion Server 10.7.4
- 适用于服务器和客户端的模板语言
- Ruby:字符串重建算法,只能部分工作
- 如何在Ruby on Rails中将数组持久化到数据库?