如何使用Ruby在一定范围内生成随机数?

我试图用 Ruby在1900年和1980年之间随意一年.

到目前为止我有:

puts 'the year was: ' +  1900.to_s + rand(1980).to_s

但这只是加上1900年,随机数从0 – 1979一起看起来像19001947.

我觉得我错过了一些愚蠢的事情,但是任何人都可以看清楚吗?

解决方法

试试看吧
(1900 + rand(81)).to_s

为路人明确

首先,有一个关于字符串连接的问题.问题中的原始代码是将两个字符串(包含数字)连接在一起.例:

“1900” + “1920” = “19001920”

其次,生成随机数的范围是一个问题.在这种情况下,由于我们只想要一个80年的范围,我们要使用rand(81),而不是rand(1980).然后,我们将该结果加到基数,这将在1900到1980之间给出一个随机数.

相关文章

以下代码导致我的问题: class Foo def initialize(n=0) @n = n end attr_accessor :n d...
这是我的spec文件,当为上下文添加测试“而不是可单独更新用户余额”时,我得到以下错误. require 's...
我有一个拦截器:DevelopmentMailInterceptor和一个启动拦截器的inititializer setup_mail.rb. 但我想将...
例如,如果我有YAML文件 en: questions: new: 'New Question' other: recent: ...
我听说在RSpec中避免它,let,let !,指定,之前和主题是最佳做法. 关于让,让!之前,如果不使用这些,我该如...
我在Rails中使用MongoDB和mongo_mapper gem,项目足够大.有什么办法可以将数据从Mongoid迁移到 Postgres...