假设我有一个二维对象数组,N x N。假设一对可以由水平、垂直或对角的每一对相邻的对象组成。对于任何 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 ...