结合rand()数字

时间:2015-09-26 07:39:27

标签: ruby

我试图合并一些随机数。这些数字应该代表一个骰子。

例如,我想掷骰子5次,我得到以下结果: 4 2 1 4 6
这些都是个别数字,但我想要做的是将它们合并为42146

这可能是一个非常简单的问题,所以我为此道歉,但我还是Ruby的新手。

我通过这个产生[1,6]之间的数字:

number = 1 + rand(6)

4 个答案:

答案 0 :(得分:4)

1.upto(5).map { rand(1..6) }.join.to_i

答案 1 :(得分:1)

虽然所有答案都是正确的,但还有一个选择:

dice = 0

5.times do
    dice = dice * 10 + rand(1..6)
end

puts dice

演示:http://ideone.com/WfagFT
这次你将所有内容视为整数。每次(5卷)你取结果变量,乘以10,然后在它的末尾添加新的随机数。没有必要使用其他任何东西。

当然,如果你需要它,这段代码也可以写成一行代码,并且与上面完全相同:

p @dice if 5.times { @dice = @dice.to_i * 10 + rand(1..6) }

答案 2 :(得分:0)

5.times.inject(0){|n, _| n * 10 + 1 + rand(6)}

答案 3 :(得分:0)

p Array.new(5){1 + rand(6)}.join # => "53325"
相关问题