我知道如何在ruby中生成一个范围内的随机数:
rand(10..45)
但如何从给定数字生成数字?
示例:
def generate_random_number(n)
#what to put here
end
如果我跑:
generate_random_number(123)
它将从给定的数字返回一个可能生成的数字数组:
[123, 321, 231, 132 etc ...]
有解决这个问题的红宝石功能吗?
答案 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]