【发布时间】:2011-05-16 16:15:04
【问题描述】:
没什么太复杂的,基本上我只是想从数组中挑选一个元素,就好像我在为每个索引掷硬币并在我第一次得到正面时选择索引一样。也没有人头意味着我选择了最后一个箱子。
我想出了以下方法,想知道是否有更好/更有效的方法。
def coin_toss(size)
random_number = rand(2**size)
if random_number == 0
return size-1
else
return (0..size-1).detect { |n| random_number[n] == 1 }
end
end
【问题讨论】:
-
不应该是索引(0..index-1)吗?索引大小超出范围。另外,为什么你传递数组的大小而不是数组本身(然后返回值 a[i] 而不是 i)
-
已修复,谢谢。只是通过了大小,因为我正在计时各种方法并且实际上拥有一个数组并不重要。
标签: ruby probability