N x N のオブジェクトの 2 次元配列があるとします。水平、垂直、または斜めに隣接するすべてのオブジェクトのペアからペアを作成できると仮定します。N の任意の値に対して一意のペアがいくつあるかをどうやって数えることができますか?
たとえば、N = 2 の場合
0 1
2 3
01 02 03 21 23 31 を取得できます。03 は 30 と同じであることに注意してください。
特定の N に対してこれらのペアがいくつ存在するかを判断する式はありますか?これらを生成するためのさらに優れたアルゴリズムはありますか?
言語はそれほど重要ではありませんが、c++ を使用します。
以下のアルゴリズムを使用して重複するインデックスを削除すると、次のカウントが得られます。式はまだわかりません。
For size N=2
Unique pairs is =6
For size N=3
Unique pairs is =20
For size N=4
Unique pairs is =42
For size N=5
Unique pairs is =72
For size N=6
Unique pairs is =110
For size N=7
Unique pairs is =156
For size N=8
Unique pairs is =210
For size N=9
Unique pairs is =272
興味深いことに、式は 2^2+2、4^2+4、6^2+6、8^2+8 ... のようです。