如何在Ruby中生成从特定最小范围到最大变量的随机数

  • 本文关键字:最小范围 变量 随机数 Ruby ruby
  • 更新时间 :
  • 英文 :


如何在Ruby中创建随机数生成器?我知道有一些方法可以做到这一点,比如rand(0..9)生成0到9的随机数,或者rand(0…9)生成0到8的随机数。但是,如果我说rand(0.. *variable*)生成一个从0到该变量值的随机数呢?

查看下面的代码以获得更清晰的示例:

假设我正在创建一个数字猜谜游戏

print “Enter a number: “
max_num = gets
max_num.to_i #converting it into an integer to print it out with strings
random_num = rand(0.. **max_num**)

max_num.to_i不会将字符串更改为整数。字符串仍然是字符串。方法to_i返回一个不是字符串的整数。

irb> s = "123"
irb> p s.to_i
123
irb> p s
"123"

您需要做的是将返回值分配给一个变量(即使是同一个变量也可以(并使用该变量,如

max_num = max_num.to_i
random_num = rand(0..max_num)

事实上,在Ruby中,尽管有很多方法可以改变接收器的内部状态(如Array#map!String#strip!(,但没有一种方法可以更改接收器的类型。

最新更新