このタイトルは完全には私が意味するものではありませんが、私はより良いものを考え出すことができません。私の問題点を説明しましょう。複製された行列を削除するにはどうすればいいですか?
私は多くの配列を要素として持つ配列を持っています。これは、実際には
[
[a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p],
[i, j, k, l, m, n, o, p, a, b, c, d, e, f, g, h],
[m, i, e, a, n, j, f, b, o, k, g, c, p, l, h, d],
...
]
のように見える、すべての要素が行列を表し、あなたが
[
+- -+
| a, b, c, d |
| e, f, g, h |
| i, j, k, l | // matrix1
| m, n, o, p |
+- -+ ,
+- -+
| i, j, k, l |
| m, n, o, p |
| a, b, c, d |
| e, f, g, h |
+- -+ ,
+- -+
| m, i, e, a |
| n, j, f, b | // matrix2
| o, k, g, c |
| p, l, h, d |
+- -+ ,
...
]
ように、上部の配列を理解できるように、私の配列は、Aからの手紙の作るものすべて行列のスーパーセットです。上。配列内の一部の行列は重複していると見なされます。水平、垂直、2つの対角線で行列を反転したり、90,180,270度回転させて結果行列を配列に含めると、これらの2つの行列は "重複"とみなされます。たとえば、matrix1を時計回りに90度回転させると、matrix2が得られます。したがって、matrix2とmatrix1は重複していると見なされます。私たちはそのうちの1つだけを必要とします。私の質問は、私の元の配列(削除され、保持されているものは問題ではない、あなたはそのうちの1つを保持する)で重複を削除する最良の(最も簡単な)方法は何ですか?
ありがとうございました。
良いアイデア、私はそれを試してみましょう。ありがとうございました。 –