我试图在1900年到1980年间用Ruby随机获得一年.
到目前为止,我有:
puts 'the year was: ' + 1900.to_s + rand(1980).to_s
Run Code Online (Sandbox Code Playgroud)
但这只是添加了1900和一个从1979年到1979年的随机数,看起来像19001947.
我想我错过了一些愚蠢的东西,但任何人都可以放弃任何光明吗?
小智 27
Ruby 1.9.3
1.9.3p0 :001 > rand(1900..1980)
=> 1946
1.9.3p0 :002 > rand(1900..1980)
=> 1929
1.9.3p0 :003 > rand(1900..1980)
=> 1934
Run Code Online (Sandbox Code Playgroud)
Bri*_*ter 14
试一试
(1900 + rand(81)).to_s
Run Code Online (Sandbox Code Playgroud)
为路人清楚
首先,有关字符串连接的问题.问题中的原始代码将两个字符串(包含数字)连接在一起.例:
"1900"+"1920"="19001920"
其次,存在生成随机数范围的问题.在这种情况下,由于我们只想要80年的范围,我们想要使用rand(81)而不是rand(1980).然后我们将结果添加到基数中,这将在1900年到1980年之间给出一个随机数.