Difficoltà sull'utilizzo della funzione srand (c++)

Pubblicità

Conan il rabarbaro

Nuovo Utente
Messaggi
4
Reazioni
0
Punteggio
22
Salve a tutti. Mi sapreste spiegare come si utilizza la funzione srand? Ho provato a cercare, e ho trovato questo esempio in cui vengono generati valori casuali da 3 a 6, continuando però a non capire come debba essere utilizzata.
Codice:
void random_cod(char codice[], int dim)
{
     srand(time(NULL));
     int a;
     char b;
     b=0;
     a=0;

     while(a<dim)
     {
               b=rand();
               while(b<3 || b>6)
               {
                         b=rand();  
                         b=(b%4)+3;   
               }
               cout<<c<<" ";
               codice[a]=b;
               a++;
     }
}
In particolare, a me servirebbe generare in modo casuale i numeri da 1 a 4. Grazie in anticipo per le risposte!
 
Salve a tutti. Mi sapreste spiegare come si utilizza la funzione srand? Ho provato a cercare, e ho trovato questo esempio in cui vengono generati valori casuali da 3 a 6, continuando però a non capire come debba essere utilizzata.
Codice:
void random_cod(char codice[], int dim)
{
     srand(time(NULL));
     int a;
     char b;
     b=0;
     a=0;

     while(a<dim)
     {
               b=rand();
               while(b<3 || b>6)
               {
                         b=rand();  
                         b=(b%4)+3;   
               }
               cout<<c<<" ";
               codice[a]=b;
               a++;
     }
}
In particolare, a me servirebbe generare in modo casuale i numeri da 1 a 4. Grazie in anticipo per le risposte!

la funzione rand è quella che crea un numero pseudo-random. srand serve per inizializzare la funzione e time(NULL) è il seme. (mi pare sia cosi, è tardi :asd:)
Comunque, posto b = rand(), allora b%4 = numero random compreso da 0 a 3, a questo aggiungici il +3 e ottieni un numero nel range da 3 a 6.
Per ottenere un numero da 1 a 4, fai (rand()%4)+1. Ovvero randomizza un numero da 0 a 3 (entrambi compresi), ci aggiungi un +1 e ottieni un numero da 1 a 4 (compresi)
 
Ultima modifica:
la funzione rand è quella che crea un numero pseudo-random. srand serve per inizializzare la funzione e time(NULL) è il seme. (mi pare sia cosi, è tardi :asd:)
Comunque, posto b = rand(), allora b%4 = numero random compreso da 0 a 3, a questo aggiungici il +3 e ottieni un numero nel range da 3 a 6.
Per ottenere un numero da 1 a 4, fai (rand()%4)+1. Ovvero randomizza un numero da 0 a 3 (entrambi compresi), ci aggiungi un +1 e ottieni un numero da 1 a 4 (compresi)
Grazie mille!
 
La funzione rand genera numero pseudo-casuali: come tale, pertanto, il suo output varia in funzione di un parametro detto seme (seed). I generatori di numeri pseudo-casuali (PRNG) hanno la caratteristica di produrre lo stesso output a parità di seed. Se scrivessi un programma che scrive 3 valori di rand(), tutte le volte che lo eseguiresti avresti il medesimo risultato.

Devi dunque fare in modo che questo seed cambi. Per fare questo puoi utilizzare il numero di secondi passati finora che, come potrai immaginare, aumenta continuamente e lo ottieni con time(NULL)/time(0). srand non fa altro che dare il seed a rand.
 
Pubblicità
Pubblicità
Indietro
Top