/ / Генериране на tuples модул индекс - алгоритъм, tuples, комбинаторни

Генериране на tuples модул индекс - алгоритъм, tuples, комбинаторни

Търся алгоритъм (или C-подобенизпълнение, няма налични itertools), което генерира всички tuples [a_0 a_1 ... a_ (n-1)], така че 0 <= a_i <= i + 1. Показателите за литературата също са добре дошли.

Отговори:

3 за отговор № 1

нещо като това?

void printTuples (int n, int[] a, int i=0) {
if (i == n) {
//print a
return;
}
for (int j=0; j<=i+1; j++) {
a[i] = j;
printTuples (n, a, i+1);
}
}

0 за отговор № 2

Това е наречено връщане назад. Търсете уикипедия за това.Можете да го направите както рекурсивно, така и итеративно.

Амир, той иска между 0 и 1 + 1, не между 0 и аз. И мисля, че преминаването на масиви в стека е по-бавно, отколкото да ги разглеждате като глобални.

Мисля, че искате нещо такова:

int a[YOUR_LENGTH];

void backtracking (int n, int counter) {
if (counter == n) {
// do whatever
return;
}
for (int j = 0; j <= counter + 1; ++ j) {
a[counter] = j;
backtracking(n, counter + 1);
}
}