获取具有三重状态的二维数组矩阵的置换

时间:2019-03-28 01:03:42

标签: c#

我想在以下条件下获得2D数组的排列。

  1. 矩阵的n个元素的长度和宽度相同。

  2. 每个元素的值可以为1或0。

  3. 第i行和第i列的值必须为0。其他值可以为0或1。

  4. 如果i代表行号,j代表列号。矩阵[i,j]和矩阵[j,i]可以是一个值是0,另一个是1,或者两者都是0。例如,对于矩阵[1,2]和矩阵[2,1]。组合的可能性只有三种。

矩阵[1,2] = 0,矩阵[2,1] = 0

矩阵[1,2] = 0,矩阵[2,1] = 1

矩阵[1,2] = 1,矩阵[2,1] = 0

如果n = 3,则应具有以下组合。

0 0 0
0 0 0
0 0 0

0 1 0
0 0 0
0 0 0

0 1 1
0 0 0
0 0 0

0 1 1
0 0 1
0 0 0

0 0 0
1 0 0
0 0 0

0 0 0
1 0 0
1 0 0

0 0 0
1 0 0
1 1 0

0 0 0
1 0 0
1 1 0

0 0 1
1 0 0
0 1 0

0 1 0
0 0 0
1 1 0

0 0 0
1 0 1
1 0 0

0 1 0
0 0 1
1 0 0

如何编写代码以获取此n大小矩阵的排列? 无需显示结果,只需排列即可。

0 个答案:

没有答案