161
A
回答
270
UPDATE:紅寶石1.9.3 Kernel#rand
還接受範圍
rand(a..b)
http://www.rubyinside.com/ruby-1-9-3-introduction-and-changes-5428.html
轉換爲陣列可以是太昂貴,這是不必要的。
(a..b).to_a.sample
或者
[*a..b].sample
標準的Ruby 1.8.7+。
注意:在1.8.7中命名爲#choice,並在更高版本中重命名。
但無論如何,生成數組需要的資源,和你已經寫的解決方案是最好的,你可以做。
3
請參閱this回答:在Ruby 1.9.2中有,但在早期版本中沒有。我個人認爲rand(8)+ 3很好,但如果你有興趣查看鏈接中描述的Random類。
2
對於10和10 ** 24
rand(10**24-10)+10
81
Random.new.rand(a..b)
哪裏a
是你的最低值和b
是你的最高值。
3
def random_int(min, max)
rand(max - min) + min
end
11
rand(3..10)
When max is a Range, rand returns a random number where range.member?(number) == true.
7
剛剛記下的範圍內運營商之間的區別:
3..10 # includes 10
3...10 # doesn't include 10
1
這裏是兩個#sample
和#rand
快速基準:
irb(main):014:0* Benchmark.bm do |x|
irb(main):015:1* x.report('sample') { 1_000_000.times { (1..100).to_a.sample } }
irb(main):016:1> x.report('rand') { 1_000_000.times { rand(1..100) } }
irb(main):017:1> end
user system total real
sample 3.870000 0.020000 3.890000 ( 3.888147)
rand 0.150000 0.000000 0.150000 ( 0.153557)
所以,做蘭特(範圍)是正確的事情
相關問題
- 1. 隨機數生成兩個區間之間的雙打[a,b]
- 2. Java功能流:在距離A和B之間生成一組隨機點
- 3. 在x和y之間但不在a和b之間生成隨機數的最佳方法
- 4. 如何在'X'和'O'之間隨機生成一個字符?
- 5. 生成隨機(a,b)調用Random(0,1)
- 6. 如何在C中生成-1和1之間的隨機數?
- 7. [b] [b = a,0]如何在a和b之間交換?
- 8. 如何在C中只生成'A','B','S'和'Z'的隨機字符?
- 9. 如何生成[0,1]和3分數之間的隨機數
- 10. * a = b和a =&b之間的差異?
- 11. 如何在0和2pi之間生成隨機數?
- 12. 在[0,1)之間生成隨機數
- 13. 如何在Haskell中隨機生成一個隨機生成的數字列表
- 14. 如何在1到1,000,000之間生成FreePascal中的隨機數
- 15. 如何在C++中生成0到4之間的隨機數?
- 16. 如何在Swift中生成0-5之間的隨機數字?
- 17. 在兩個值之間生成一個隨機數
- 18. 我如何在1到16之間的C++中生成一個隨機數?
- 19. 如何生成-1和1之間的隨機數?
- 20. 如何生成1000和-1000 C++之間的隨機數?
- 21. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 22. 生成一個介於0.001和0.0015之間的隨機值
- 23. 在兩個整數值之間生成Swift中的隨機值
- 24. 在rand之間生成一個1-7之間的隨機數rand(5)
- 25. ruby中a = 1,b = 2和a = 1(換行符)b = 2之間的差異
- 26. ||之間的區別a = b和a = a || b在紅寶石?
- 27. 如何生成一個隨機數
- 28. 在2個數字之間生成一個唯一的隨機數
- 29. 在PHP OOP中$ a =&$ b,$ a = $ b和$ a = clone $ b之間的區別OOP
- 30. 生成Java Card中兩個數字之間的隨機數字
`高清my_rand(X,Y); rand(y - x)+ x;結束' – Theo 2010-12-09 05:49:55
@Theo,`y - x + 1`,順便說一句。 – Nakilon 2010-12-09 07:01:28
試試你的正確答案10和10 ** 24作爲限制:0將會非常非常長awaitng :) – 2010-12-09 07:19:20