よりも複雑な行列演算を最適化するには、行列の上三角の演算を行う方法があるかどうかを調べようとしています。O(n^2)時間未満[好ましくは線形時間]。行列要素はexample.i.eに示すように連続していることに注意してください。各行と列のすべての値がソートされます。これをO(n^2)の複雑さを使って解決しました。以下の例: 21^22^23^24^25^26 ^:私は上三角にXOR演算を実行する場合2次元正方形(n * n)の行列を与えられたO(n^2)
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
は今、それは以下の要素を-ing XORを意味します27^28^29^31^32^33^36^37^41 = 35であり、これは所望の結果である。すなわち
、私は基本的にXOR-ING午前:
21 22 23 24 25 26 27 28 29 31 32 33 36 37 41
Iは、それらのバイナリ等価物を生成することによって、パターンを見つけることによりDPを使用して解決しようとしたが、任意の一貫したパターンを見つけることができませんでした。コメントの後
この質問は少しあいまいです。だからあなたが望むのは、上三角のxorを計算することだと仮定します。 **あなたは三角形の各要素(= n^2/2要素)を見る必要があるので、O(n^2/2)= O(n^2)は下限です**。これは*いくつかの計算*のために変更することができますが、xor関数は非常に敏感です(あまりプルーニングはできません;最後の値はすべてのビットを変更する可能性があります)。 – sascha
@sascha一方、行列がn * n個の要素を含む場合、それは入力 - > O(n/2)のサイズとみなされます。 – JimmyB
2次元行列で与えられた数を生成するパターンはありますか? –