espero que esto no es una víctima, pero es difícil para hervir el problema en palabras clave!Algoritmo de repetición de espacio de muestra de números
Esto siempre es algo que me he preguntado. Digamos que usted tiene un cuadro negro que lleva n enteros como entrada (donde n > 1). Dado que hay límites en los valores enteros, ¿cómo harías para escribir un algoritmo que empujara todo el espacio de muestra a través del recuadro negro? (Puntos de bonificación si n se pueden especificar en tiempo de ejecución)
Mi intento cuando n = 2 es el siguiente:
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++;
}
}
El código anterior está muy bien para dos variables, pero como se puede imaginar, mi el algoritmo se vuelve realmente feo cuando n se acerca a los dígitos dobles.
¿Hay una mejor manera de hacer esto con excepción de anidación si declaraciones como lo he hecho?
Conozco una mala forma de hacerlo, que sería generar aleatoriamente los valores para cada iteración y guardar las entradas de las iteraciones anteriores para no golpear dos veces la caja negra con las mismas variables. Sin embargo, esperaba de un método más rápido que las colisiones daño de verdad el tiempo de ejecución como el número de cuadro negro única llama se acerca (max - min + 1)^n
bucles anidados es una buena idea! Supongo que estaba interesado en qué enfoque tomaría si quisiera especificar en tiempo de ejecución el número de variables para iterar. Voy a volver a formular mi pregunta, ligeramente para reflejar eso. Además, gracias por la corrección, he solucionado mi pregunta :) – Catchwa