Ruby如何从给定数字生成随机数

时间:2015-07-23 03:04:54

标签: ruby algorithm

我知道如何在ruby中生成一个范围内的随机数:

rand(10..45)

但如何从给定数字生成数字?

示例:

def generate_random_number(n)
  #what to put here
end

如果我跑:

generate_random_number(123)

它将从给定的数字返回一个可能生成的数字数组:

[123, 321, 231, 132 etc ...]

有解决这个问题的红宝石功能吗?

1 个答案:

答案 0 :(得分:3)

您要找的是permutation

123.to_s.chars.permutation.map {|a| a.join.to_i}
# => [123, 132, 213, 231, 312, 321]

如果您希望订单是随机的,shuffle它:

123.to_s.chars.permutation.map {|a| a.join.to_i}.shuffle
# => [312, 123, 213, 132, 231, 321]