File di intestazione:
stdlib.h
Sintassi:
int rand (vuoto)
Valori restituiti:
Questa funzione restituisce il successivo numero pseudocasuale della serie. Il valore dell'intervallo della serie di numeri è compreso tra 0 e RAND_MAX. RAND_MAX è una macro definita in stdlib.h file di intestazione, il cui valore è il valore massimo, che può essere restituito dalla funzione rand(). Il valore di RAND_MAX è maggiore ma non inferiore a 32767 a seconda delle librerie C.
//Esempio 1.c#includere
#includere
intero principale()
int io;
printf("10 numeri casuali =>\n");
for(i=0;i<10;i++)
printf("%d", rand());
printf("\n");
restituisce 0;
Nell'esempio1.c, chiamiamo la funzione rand() in ogni iterazione del ciclo for e stampiamo il valore di ritorno della funzione. La sequenza di valori della funzione rand() è la stessa ogni volta che eseguiamo il programma. Per impostazione predefinita, il seme della funzione rand è impostato su 1.
Possiamo impostare il seme per la funzione rand usando il randa() funzione. Il seme può essere impostato solo una volta e prima della prima volta rand() chiamata di funzione.
funzione srand():
File di intestazione:
stdlib.h
Sintassi:
int srand (seme int non firmato)
Argomenti:
Questa funzione accetta 1 argomento
seme: Un valore intero usato come seme per una nuova serie di numeri pseudo-casuali.
Valori restituiti:
Nessuna
//Esempio2.c#includere
#includere
#includere
intero principale()
int io;
srand(time(0));
printf("10 numeri casuali =>\n");
for(i=0;i<10;i++)
printf("%d", rand());
printf("\n");
restituisce 0;
Nell'esempio2.c, abbiamo usato la funzione srand() per impostare il seme iniziale della sequenza numerica casuale generata dalla funzione rand(). Ad ogni esecuzione del programma viene generata una sequenza diversa. In srand(), funzione time(0) (dichiarata in tempo.h file di intestazione) viene utilizzato come seme. Questa funzione time(0) restituisce il numero di secondi trascorsi dall'epoca (00:00:00, 1 gennaio 1970). Questo potrebbe ancora produrre le stesse sequenze se esegui il programma nello stesso secondo.
#includere
#includere
#includere
intero principale()
int io;
srand(time(0));
printf("10 numeri casuali tra 1 e 10 =>\n");
for(i=0;i<10;i++)
printf("%d",(rand() %10) + 1);
printf("\n");
restituisce 0;
Nell'esempio 3.c abbiamo visto come si possono generare numeri casuali tra 1 e 10.
#includere
#includere
#includere
intero principale()
int i,max,min;
printf("Inserisci valore minimo => ");
scanf("%d",&min);
printf("Inserisci il valore massimo => ");
scanf("%d",&max);
se(min>max)
printf("Il valore minimo è maggiore del valore massimo\n");
restituisce 0;
srand(time(0));
printf("10 numeri casuali compresi tra %d e %d=>\n",min,max);
for(i=0;i<10;i++)
printf("%d",(rand() % (max - min +1)) + min);
printf("\n");
restituisce 0;
Nell'esempio4.c abbiamo preso l'intervallo dall'utente e generato un numero casuale all'interno di questo intervallo. La formula è: rand() % (max - min +1)) + min
#includere
#includere
#includere
intero principale()
int io;
srand(time(0));
printf("10 numeri casuali compresi tra 0.0 e 1.0 =>\n");
for(i=0;i<10;i++)
printf("%f",((float)rand() /RAND_MAX));
printf("\n");
restituisce 0;
Nell'esempio5.c, abbiamo visto come possiamo generare numeri casuali tra float 0.0 e 1.0 La formula è: (float)rand() /RAND_MAX)
#includere
#includere
#includere
intero principale()
int io;
flottante max,min;
printf("Inserisci il valore minimo => ");
scanf("%f",&min);
printf("Inserisci il valore massimo => ");
scanf("%f",&max);
se(min>max)
printf("Il valore minimo è maggiore del valore massimo\n");
restituisce 0;
srand(time(0));
printf("10 numeri casuali tra %f e %f =>\n",min,max);
for(i=0;i<10;i++)
printf("%f ",min + ((float)rand() /(RAND_MAX/(max - min))));
printf("\n");
restituisce 0;
Nell'esempio 6.c, abbiamo preso l'intervallo dall'utente e generato un numero casuale all'interno di questo intervallo (entrambi inclusi). La formula è: min + ((float)rand() /(RAND_MAX/(max - min)))
Conclusione:
In questo articolo, abbiamo imparato come generare numeri casuali usando il rand() e randa() funzione. Non ci sono garanzie sulla qualità dei numeri casuali generati dalla funzione rand, ma è abbastanza buona per un uso casuale.