置換ありおよび置換なしの重み付きランダム選択
プログラミングの課題に応えて、リストからの重み付きランダム選択のための効率的なアルゴリズムを求めます。
置換による重み付き選択
置換による重み付き選択の効果的な方法の 1 つは、エイリアス メソッドです。この手法では、重み付けされた要素ごとに同じサイズのビンのセットが作成されます。ビット操作を利用することで、二分探索に頼ることなく、これらのビンに効率的にインデックスを付けることができます。各ビンには、元の重み付けされた要素間の境界を表す単一のパーセンテージが格納されます。
等しい重みを持つ 5 つの要素の例を考えてみましょう: (a、b、c、d、e)。
エイリアス メソッドの実装
すべての重みが分散されるまで次の手順を繰り返します。
この例では、数回の反復の後、次のパーティションが得られます:
実行時選択
置換なしの重み付け選択
アルゴリズム重み付けリザーバー法と同様に、置換なしの重み付けなしの選択に対しても存在しますが、この問題は未解決のままです。
以上が置換ありまたはなしで効率的な加重ランダム選択を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。