C ++ Matrix комбинации - PullRequest
0 голосов
/ 23 июня 2011

Во-первых, спасибо за чтение. Я пытаюсь создать программу "noob", и я хотел использовать регистрационный код.Для завершения моего алгоритма шифрования мне нужно сгенерировать все матрицы 4x4, содержащие только цифры от 0 до 9, как в следующем примере:

4 4 6 8

5 2 4 3

8 5 2 9

2 7 2 6

Я знаю, что существует огромное количество этих комбинаций, но это не остановит меня. Я попытался сделать это, используя «для», но я могуне разбираюсь.

1 Ответ

1 голос
/ 23 июня 2011

Я бы сохранил матрицу 4x4 цифр как char [16], интерпретируя первые четыре символа как первый ряд, следующие четыре символа как второй ряд и т. Д. Вы можете легко сгенерировать все возможные значения с помощью рекурсии, используя 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);
    }
}

Вы бы использовали это следующим образом:

int main() {
    char matrix[16];
    print_all_possible_matrices(matrix, 0);
}

Но это займет очень много времени.

...