J'espère que ce n'est pas une dupe, mais il est difficile de résumer le problème en mots-clés!Algorithme pour itérer à travers l'espace échantillon de nombres
C'est toujours quelque chose que je me suis demandé. Disons que vous avez une boîte noire qui prend n entiers comme une entrée (où n> 1). Étant donné qu'il y a une limite sur les valeurs entières, comment allez-vous écrire un algorithme qui va pousser tout l'espace d'échantillon à travers la boîte noire? (Points de bonus si n peut être spécifié lors de l'exécution)
Ma tentative quand n = 2 est la suivante:
int min = 0;
int max = 9;
int a = min;
int b = min;
while(a <= max && b <= max)
{
blackBox(a, b);
a++;
if(a > max)
{
a = min;
b++;
}
}
Le code ci-dessus est très bien pour deux variables, mais comme vous pouvez le deviner, mon algorithme devient vraiment moche quand n approches à deux chiffres.
Existe-t-il une meilleure façon de procéder que d'imbriquer des instructions comme celles que j'ai faites?
Je connais un mauvais moyen de le faire, qui serait de générer aléatoirement les valeurs pour chaque itération et enregistrer les entrées des itérations précédentes afin de ne pas pointer deux fois la boîte noire avec les mêmes variables. Cependant, j'espérais une méthode plus rapide que les collisions blessent vraiment le temps d'exécution que le nombre de boîte noire unique, appelle des approches (max - min + 1)^n
boucles nichés sont une bonne idée! Je suppose que je m'intéressais à l'approche que l'on adopterait si l'on voulait spécifier au moment de l'exécution le nombre de variables à parcourir. Je reformulerai ma question, légèrement pour refléter cela. Aussi, merci pour la correction, j'ai corrigé ma question :) – Catchwa