この質問は、リンクの下の質問の延長です。
私の質問は、各要素の重みが頻繁に動的に変更されるという追加の条件で重み付けされた乱数をサンプリングすることです。
編集異なる重みで選択する N 個の要素があるとします。
静的な重みの場合、Walker のエイリアス メソッドでは、エイリアスのセットアップに O(N) の時間が必要ですが、サンプリング コストは O(1) であるため、目標を達成するのに最適な方法の 1 つです。
また、二分探索法では、累積配列を作成するために O(N) も必要であり、サンプリング コストは log(N) です。
ただし、私の場合、重みは頻繁に変更されるため、重みを変更する時間の複雑さも重要です。
したがって、データ構造の変更と O(N) 未満のサンプリングの両方に時間の複雑さを持つ既存のライブラリまたはアルゴリズムがあることを知りたいです。
編集コメントを読んでいるうちに、追加の条件を課す必要があることに気付きました。各修正フェーズでは、数個 (ほとんどが 2 つ) の重みのみが修正され、それらの修正によって重みの合計が変更されることはありません (正規化条件)。
解決策があれば、重みが実数の場合にも使用できるかどうかも知りたいです。