可以遍历N维数组的每种可能组合的算法或伪代码是什么?

时间:2019-04-12 14:27:59

标签: arrays algorithm combinations

我需要生成一个NxN维的数组,其中每个值都是具有所有可能组合的二进制值。使之成为可能的算法或伪代码是什么?

有些情况下可以理解问题。

生成一个N=2维数组:

0 0
0 1
1 0
1 1

生成一个N=3维数组:

0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1

生成一个N=10维数组:

0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1 1
...

N是一个变量。该算法取决于此。

一种非常简单的可视化方式是:

For each A1
    For each A2
        ...
            For each An

那我该怎么办?

1 个答案:

答案 0 :(得分:0)

一个简单的递归就足够了。如果您知道n-1的答案,那么对于n,只需将数组加倍,然后将0添加到第一个副本,将1添加到第二个副本。