私は、サイズNのアイテムのセットを持っています。アイテムは確率でソートされています。これらのアイテムの正方行列m [N] [N]は、Cスタイルのメモリ構成では、類似の確率を持つ要素が広がっています。例えば、m [0] [100]は、m [100] [0]から非常に遠くにあり、他はすべて同様の確率である。単純な方法で要素を並べ替える必要があるので、より可能性の高いものは0に近づく傾向があります。正方行列である必要はなく、ベクトル[N * N]になります。そして、それは完璧である必要はありません、同様の確率を持つ要素がいくらかグループ化されていれば十分です。正方行列順列
私は、置換された行列/ベクトル上の位置を与える関数f(i、j)を探しています。可能であれば、非常に簡単な操作で(例えば、正方形や区切りは使用できませんが、プログラムの条件はOKです)
もっとグラフィカルなリファレンスとして、私はこのようなものを探しています。 [BBCのCantorの議論に関する数学の話から]
しかし、正確にその順列である必要はありません。対角線上を歩いている要素は、ほとんどが近くにグループ化されています。
まあ、これはおそらく非常に単純なことだと知っていますが、学校/ユニとWolframalphaが助けになってから何年も経ちました。
ありがとうございます!
スペースフィルカーブをお探しですか? http://en.wikipedia.org/wiki/Space-filling_curve – ltjax
必ずしもそうではありません。イメージのような便利なものがあれば、(i、j)から後ろへの実用的な変換があります。しかし、同じ対角線の要素が主にグループ化されている限り、他の方法でも構いません。 – alecco
あなたの例では、 'm [0] [100]'と 'm [100] [0]'は同じ鍵を持っています(ここでの確率 - ここで確率を呼ぶのは状況を混乱させると思います)。だからあなたがあなたのインデックス_i_と_j_を呼び出すならば、ソートするキーは 'i + j'です。これは正しいです? – nategoose