C ++矩阵组合

时间:2011-06-23 16:57:38

标签: c++ matrix combinations

首先感谢阅读。我正在尝试制作一个“noob”程序,我想使用注册码。 为了完成我的加密算法,我需要生成仅包含0到9之间的数字的所有4x4矩阵,如下例所示:

4 4 6 8

5 2 4 3

8 5 2 9

2 7 2 6

我知道这些组合中有很多但它不会阻止我。我试着用“for”来做这件事,但我无法弄明白。

1 个答案:

答案 0 :(得分:1)

我将4x4数字矩阵存储为char [16],将前四个字符解释为第一行,将接下来的四个字符解释为第二行等。您可以通过递归轻松生成所有可能的值,并使用{ {1}}在每个级别循环。

for

您可以通过以下方式使用它:

void print_all_possible_matrices(char *matrix, int level) {
    if(level == 16) {
        print_matrix(matrix);
    }
    for(int i = 0; i < 10; ++i) {
        matrix[level] = i;
        print_all_possible_matrices(matrix, level + 1);
    }
}

但这需要很长时间才能完成。