C Programmazione

funzione rand() in linguaggio C

funzione rand() in linguaggio C
Nel linguaggio C, il rand() la funzione è usata per Generatore di pseudo numeri (PRNG). I numeri casuali generati dalla funzione rand() non sono veramente casuali. È una sequenza che si ripete periodicamente, ma il periodo è così grande che possiamo ignorarlo. Il rand() la funzione funziona ricordando un valore di seme che viene utilizzato per calcolare il prossimo numero casuale e il prossimo nuovo seme. In questo articolo, discuteremo in dettaglio come possono essere generati numeri casuali usando il rand() funzione. Quindi iniziamo!

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.

//Esempio3.c
#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.

//Esempio4.c
#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

//Esempio5.c
#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)

//Esempio6.c
#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.

Tutorial Shadow of the Tomb Raider per Linux
Shadow of the Tomb Raider è la dodicesima aggiunta alla serie Tomb Raider, un franchise di giochi d'azione e avventura creato da Eidos Montreal. Il gi...
Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...
I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...