📅  最后修改于: 2023-12-03 14:47:09.606000             🧑  作者: Mango
在编程过程中,经常需要生成随机数。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生成随机数的介绍。希望本文能对你有所帮助。