Una soluzione semplice ma estremamente (!) inefficace é quella di salvare il numero casuale generato e confrontarlo con i precedenti. Se non esistono corrispondenze lo inserisci. Altrimenti termini il ciclo, ne crei un nuovo e ripeti l'operazione.Originariamente inviato da fabiospecial
Salve a tutti,
Ho un problema, sto sviluppando un progetto per l'esame di programmazione, e devo generare delle matrici, con numeri pseudocasuali non ripetuti. I numeri devono essere nell'intervallo 1 a n^2.
Questo codice che ho sviluppato io mi riempe la matrice con numeri casuali ripetuti. Per il progetto a me serve che i numeri non si ripetano. Non ho idea di come implementarlo in C. C'è qualcuno che potrebbe adattare il controllo per non ripetere i numeri sul mio codice? Così capisco come fare.codice:#include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> void main() { srand((unsigned int)time(0)); int i, j, n=3; float m; m=pow((float)n,2); int matrice[3][3]; for (i=0; i<n; i++) { for(j=0; j<n; j++) { matrice[i][j]=1+rand()%((int)m); printf("%d ",matrice[i][j]); } printf("\n"); } }
Grazie in anticipo a tutti![]()