長さ L の N 個のバイナリ シーケンスがあります。ここで、N と L は非常に大きく、これらのシーケンスは非常にまばらで、1 よりも 0 の方が多いとします。
それらから M シーケンス、つまり b_1、b_2、b_3... を選択したい
b_1 | b_2 | b_3 ... | b_M = 1111...11 (L 1s)
それを達成するためのアルゴリズムはありますか?
私の考えは:
STEP1: 1 から L までの位置について、その位置に 1 を持つ配列の総数を数えます。「所有番号」と名前を付けます
STEP2: 保有数が最小のポジションを考え、そのポジションの保有配列から1の数が最大の配列を選ぶ。
STEP3: 選択したシーケンスを無視し、所有番号を更新して STEP2 に戻ります。
私の方法では最良の答えは得られないと思います。
誰かがより良いアイデアを持っていますか?