Spero che questo non sia un capriccio, ma è difficile riassumere il problema in parole chiave!Algoritmo per iterare attraverso lo spazio campione dei numeri
Questo è sempre qualcosa che mi sono chiesto. Supponiamo che tu abbia una casella nera che accetta n come input (dove n> 1). Dato che c'è un limite sui valori interi, come andresti a scrivere un algoritmo che spingerà l'intero spazio campione attraverso la scatola nera? (Punti bonus se n possono essere specificati in fase di esecuzione)
Il mio tentativo quando n = 2 è la seguente:
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++;
}
}
Il codice di cui sopra è bene per due variabili, ma come si può immaginare, il mio l'algoritmo diventa davvero brutto quando n si avvicina alle doppie cifre.
C'è un modo migliore per fare questo diverso dal nidificare se le affermazioni come ho fatto?
Conosco un modo non corretto di farlo, che sarebbe generare casualmente i valori per ciascuna iterazione e salvare gli input delle iterazioni precedenti in modo da non attirare la scatola nera con le stesse variabili due volte. Tuttavia, speravo in un metodo più veloce in quanto le collisioni danneggiavano davvero il tempo di esecuzione poiché il numero di chiamate nere uniche si avvicina a (max - min + 1)^n
Nested loop è una buona idea! Suppongo di essere interessato a quale approccio si dovrebbe prendere se si volesse specificare in fase di esecuzione il numero di variabili da scorrere. Risponderò alla mia domanda, leggermente per riflettere questo. Inoltre, grazie per la correzione, ho risolto la mia domanda :) – Catchwa