我从rand(1..117)
开始。假设它印了80张。我想再生成一个比第一个数字少20到多20之间的随机数,但仍在1到117之间,即,防止出现负数或大于117的数字。
例如,我可以得到50、35、55、45、64、79、99、88、108等。每个数字都在1到117之间,但不低于或高于前面数字的20。
最佳答案
将随机值-20和最小值(1)放在一个数组中,并确定最大值。同样地,值+20和117,但这里需要最小值。
这听起来比实际情况复杂得多:
puts r = rand(1..117)
99.times do
puts r = rand([r-20, 1].max..[r+20, 117].min)
end