我有一系列随机数字要买彩票。
我怎么能选择第二名等的随机数,而不冒再次拔出第一名的风险呢?

$first = rand(0..99999)
$second = rand(0..99999)
$third = rand(0..99999)

我需要在下面的图纸中找到一些例外情况。

最佳答案

shuffle将对整个数组进行置换,这对于大型数组来说可能很慢。sample是一个更快的操作

(1..99999).to_a.sample(3)

为了进行基准测试:
> require 'benchmark'
> arr = (0..99999).to_a; 0
> Benchmark.realtime { 10_000.times { arr.sample(3) } }
=> 0.002874
> Benchmark.realtime { 10_000.times { arr.shuffle[0,3] } }
=> 18.107669

关于ruby - Ruby-范围内的随机数,异常(exception)情况,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20192861/

10-13 04:53