私たちは1とNとの間にM個の固有の整数を持ちます。実際の生活では、Nは数百万であり、MはN/10とN/3の間です。私は、M個の整数間の対の距離の分布を計算する必要があります。多くの整数間の対の距離の分布
問題のブルートフォースの複雑さはM^2ですが、出力はN個の数字に過ぎません。だから自然な問題は、より速いアルゴリズムがあるかどうかです。私たちの目的にはN * sqrt(M)のアルゴリズムでも十分であるはずです。
この問題は、次の問題のサブセットとして発生しました。私たちは、数百万から数百万の要素で構成される、大きな仮想正方形の対称行列を持っています。行列のいくつかの行と列はマスクされています。行列の各対角にどれだけのマスクされた要素があるかを調べる必要があります。各対角線と交差するマスクされたビンの数を簡単に計算できます。しかし、多くの場合、マスクされた行と列は対角線上で右に交差し、したがって1つのビンのみがマスクされます。これらを二重にカウントしないようにするには、マスクされた列の間に距離のペアごとの分布が必要です。
ありがとうございます!あなたの答えを読んだ後は確かに明らかです。私は何とかそれを逃した... –