Ruby 如何产生一长串随机的数字?

keyboarder · December 05, 2012 · Last by keyboarder replied at December 06, 2012 · 3507 hits

如何产生一长串随机的数字? 想到了一个笨方法,利用 SecureRandom 这个类 SecureRandom.random_number.to_s.split(".").last.to_i => 5700628921896753

SecureRandom.random_number.to_s.split(".").last.to_i => 3107219374342406

寻求更优雅更安全的写法。

你为什么会说这个不优雅,不安全呢

random_number 调用的是 random_bytes SecureRandom.random_bytes.unpack('C*').join

rand(999999999) + 999999999

SecureRandom.random_number(10**20)
 => 25940964009657619488 

合格不?

RANGE = 2**128
rand(RANGE)

#4 楼 @ywencn 就这个了 这个方法的随机数取得的位数是一样的,比如 10000,每次的随机数就是 1000-9999 之间的。 @pongyo 的方法去取到的随机数位数不一样。

You need to Sign in before reply, if you don't have an account, please Sign up first.