funzione rand() in linguaggio C

Rand Function C Language

Nel linguaggio C, il riga() 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 riga() La funzione funziona ricordando un valore 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 riga() 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.



//Esempio1.c

#includere
#includere

intprincipale()
{

intio;

printf ('10 numeri casuali => ');

per(io=0;io<10;io++)
{
printf ('%D ', riga ());
}

printf (' ');
Restituzione 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 riga() chiamata di funzione.

funzione srand():

File di intestazione:

stdlib.h



Sintassi:

int srand (seme int senza segno)

Argomenti:

Questa funzione accetta 1 argomento

seme: Un valore intero utilizzato come seme per una nuova serie di numeri pseudo-casuali.

Valori restituiti:

Nessuno

//Esempio2.c

#includere
#includere
#includere

intprincipale()
{

intio;

srand ( tempo (0));

printf ('10 numeri casuali => ');

per(io=0;io<10;io++)
{
printf ('%D ', riga ());
}

printf (' ');
Restituzione 0;
}


Nell'Esempio2.c, abbiamo usato la funzione srand() per impostare il seme iniziale della sequenza di numeri casuali 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 può ancora produrre le stesse sequenze se si esegue il programma nello stesso secondo.

//Esempio3.c

#includere
#includere
#includere

intprincipale()
{

intio;

srand ( tempo (0));

printf ('10 numeri casuali tra 1 e 10 => ');

per(io=0;io<10;io++)
{
printf ('%D ',( riga () %10) + 1);
}

printf (' ');
Restituzione 0;
}


Nell'esempio 3.c abbiamo visto come possono essere generati numeri casuali tra 1 e 10.

//Esempio4.c

#includere
#includere
#includere

intprincipale()
{

intio,max,min;

printf ('Inserisci valore minimo => ');
scanf ('%D', &min);
printf ('Inserisci valore massimo => ');
scanf ('%D', &max);

Se(min>max)
{
printf ('Il valore minimo è maggiore del valore massimo ');
Restituzione 0;
}

srand ( tempo (0));


printf ('10 numeri casuali tra %d e %d=> ',min,max);

per(io=0;io<10;io++)
{
printf ('%D ',( riga () % (max-min+1)) +min);
}

printf (' ');
Restituzione 0;
}


Nell'esempio 4.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

intprincipale()
{

intio;

srand ( tempo (0));

printf ('10 numeri casuali tra 0.0 e 1.0 => ');

per(io=0;io<10;io++)
{
printf ('%F ',((galleggiante) riga () /RAND_MAX));
}

printf (' ');
Restituzione 0;
}


In Esempio 5.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

intprincipale()
{

intio;
galleggiantemax,min;

printf ('Inserisci valore minimo => ');
scanf ('%F', &min);
printf ('Inserisci valore massimo => ');
scanf ('%F', &max);

Se(min>max)
{
printf ('Il valore minimo è maggiore del valore massimo ');
Restituzione 0;
}

srand ( tempo (0));

printf ('10 numeri casuali tra %f e %f => ',min,max);

per(io=0;io<10;io++)
{
printf ('%F ',min+ ((galleggiante) riga () /(RAND_MAX/(max-min))));
}

printf (' ');
Restituzione 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 è possibile generare numeri casuali utilizzando il riga() e randa() funzione. Non ci sono garanzie sulla qualità dei numeri casuali generati dalla funzione rand, ma è abbastanza buona per un uso occasionale.