假设我有一个二维数组对象,N×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 ...