という名前のリストがありelements
、それぞれがブール値のプロパティ を満たしているか満たしていないとしますp
。p
一様分布でランダムに満たす要素を1つ選びたい。このプロパティを満たす項目がいくつあるかは事前にわかりませんp
。
次のコードはこれを行いますか?:
pickRandElement(elements, p)
randElement = null
count = 0
foreach element in elements
if (p(element))
count = count + 1
if (randInt(count) == 0)
randElement = element
return randElement
(randInt(n)
でランダムな intk
を返します0 <= k < n
。)