📜  ruby 生成随机数 (1)

📅  最后修改于: 2023-12-03 14:47:09.606000             🧑  作者: Mango

Ruby生成随机数

在编程过程中,经常需要生成随机数。Ruby提供了多种方法来生成不同类型的随机数,本文将介绍其中一些方法。

生成随机整数

要生成随机整数,可以使用rand方法。rand(max)方法可以返回一个大于等于0,小于max的随机整数。如果不提供max,则默认为1,即返回一个0或1之间的随机整数。

下面是一个示例:

rand(100)         # 返回0到99之间的随机整数
rand(50..100)     # 返回50到100之间的随机整数
rand(-100..100)   # 返回-100到100之间的随机整数
rand              # 返回0或1之间的随机整数
生成随机浮点数

要生成随机浮点数,可以使用rand方法或Kernel.srand方法。rand(max)方法返回一个大于等于0,小于max的随机浮点数。如果不提供max,则默认为1。Kernel.srand(seed)方法可以设置一个种子,每次调用rand方法都会返回相同的伪随机数。

下面是一个示例:

rand(100.0)       # 返回0.0到99.0之间的随机浮点数
Kernel.srand(123)  # 设置种子为123
rand(100.0)       # 返回与上次相同的伪随机浮点数
rand              # 返回0.0到1.0之间的随机浮点数
随机排序数组

要对一个数组进行随机排序,可以使用shuffle方法。shuffle方法返回一个新的随机排列的数组,原数组不受影响。

下面是一个示例:

arr = [1, 2, 3, 4, 5]
arr.shuffle      # 返回一个新的随机排列的数组
puts arr.inspect # 输出原数组,未受影响
生成随机字符串

要生成随机字符串,可以使用SecureRandom模块。SecureRandom.random_bytes(n)方法可以返回一个n字节的随机字符串,SecureRandom.hex(n)方法可以返回一个n位的随机十六进制字符串。SecureRandom.uuid方法可以返回一个随机的UUID。

下面是一个示例:

require 'securerandom'

SecureRandom.random_bytes(10)    # 返回一个10字节的随机字符串
SecureRandom.hex(4)              # 返回一个4位的随机十六进制字符串
SecureRandom.uuid                # 返回一个随机的UUID

以上就是Ruby生成随机数的介绍。希望本文能对你有所帮助。