给定一个真/假值数组,选择具有随机真值的索引的最有效算法是什么.
草图简单的算法是
a <- the array
c <- 0
for i in a:
    if a[i] is true: c++
e <- random number in (0, c-1)
j <- 0
for i in e:
    while j is false: j++
return j
任何人都可以提出更快的算法吗?即使最初不知道真元素的数量,也许有一种方法只能遍历列表一次?
| 归档时间: | 
 | 
| 查看次数: | 2723 次 | 
| 最近记录: |