2012-02-14 66 views
0

红宝石在轨道上,红宝石,我怎么可以随机选择4或5?如何随机选择4或5?

+6

http://xkcd.com/221/的 – 2012-02-14 17:36:20

+0

可能重复[?如何获得在Ruby中随机数] (http://stackoverflow.com/questions/198460/how-to-get-a-random-number-in-ruby) – 2012-02-14 17:38:56

+1

我明白这是一个重复,但为什么downvotes?关于主题,它的措辞很明确,对于新的Ruby程序员来说这并不明显。 – jdl 2012-02-14 18:04:39

回答

3
four_or_five = rand(2) == 0 ? 4 : 5 

由于兰特(NUM)选择0和num之间的值,非包含,有0 50%的机会被选择。因此,four_or_five将等于4或5。

5

只要使用Ruby的rand函数:

4+rand(2) 
=> 4 
4+rand(2) 
=> 5 
4+rand(2) 
=> 5 
5

我喜欢一个漂亮简单的衬垫。

(4..5).to_a.sample 
+4

为什么过于复杂? '[4,5] .sample' – 2012-02-14 17:35:53

+0

+1使用'Array#sample'。但是,不需要创建一个Range。只需使用'%w(4 5).sample'。 – 2012-02-14 17:37:29

+0

哈,没错,塞尔吉奥。我通常会直接进入范围,因为通常它是在较大的数字之间(比如'(1..100)'),但是在这种情况下更容易。 – MrDanA 2012-02-14 17:38:26

2

在Ruby 1.9.3,我认为你可以这样做:

rand(4..5)