すべてのオブジェクトが検査されるまで、一度に1つずつ検査したいオブジェクトのコレクションがあります。各オブジェクトは、多くの重複の可能性がある事前定義された重みによって選択されます。最終結果は、コレクションからのアイテムの順序付きリストになります。このリストを取得するための効率的な方法は何ですか?
たとえば、指定されたボリュームを持つ次のボールについて考えてみます。
A: 2
B: 3
C: 25
D: 100
バッグにAボール4個、Bボール3個、Cボール1個、Dボール2個を入れてみましょう。特定のボールを引く確率がその体積に比例すると仮定すると、この時点で特定のDボールを引く確率は100/242です(同じ重量ですが同じではありません)。このDが描画されたとし、続行します。Dボールが以前に取り外されたため、この時点でCを引く確率は25/142です。ここでCボールを引いて続行するとします。DCDBABBAのようなシーケンスになるように、すべてのボールが削除されるまで描画を続けます。