2012-02-14 88 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)