Funzioni rand() e srand()

di il
3 risposte

Funzioni rand() e srand()

Ciao a tutti sto studiando in questi giorni la generazione di numeri pseudocasuali, vi posto questo codice:
#include<iostream>
#include<iomanip>
#include<stdlib.h>

using namespace std;

int main(){
int a,i;
srand(1000);
for (i = 1;i<= 10;i++){

a = rand()%50;

cout<<setw(4)<<i<<setw(10)<<a<<endl;

}
}

si tratta di un programma che genera 10 numeri casuali compresi tra 0 e 50.Ho capito(credo almeno) il funzionamento della funzione rand() mentre non tanto bene quello della funzione srand(); ho letto che serve per poter scegliere il seme(ovvero il valore iniziale) da cui la funzione rand() fa partire i conti. Quindi in pratica ,nel caso che ho postato, anzichè usare il seme della funzione rand() ho imposto il seme 1000 e la funzione rand() usera quindi 1000 come valore iniziale. Giusto? Ma se così fosse..che senso avrebbe usare entrambe le due funzioni e non solo rand()??

3 Risposte

  • Re: Funzioni rand() e srand()

    La funzione srand serve a inizializzare la funzione per la generazione dei numeri casuali. Senza di esso allo stesso seed(seme) il programma estrarrebbe sempre gli stessi numeri casuali. Per evitare ciò un metodo per rendere casuale il seme è quello di impostarlo con time(0) tramite la funzione che si trova nella libreria time.
    
    ...
    srand((unsigned int)time(0));
    ...
    
    Si effettua un cast all'unsigned int perchè la funzione vuole appunto un parametro unsigned int.
    Spero di esserer stato abbastanza chiaro.
  • Re: Funzioni rand() e srand()

    Grazie per la risposta.
    cosa sarebbe l'argomento della srand che hai postato?
  • Re: Funzioni rand() e srand()

    Ti riferisci a questo

    http://www.cplusplus.com/reference/ctime/time

    ?
Devi accedere o registrarti per scrivere nel forum
3 risposte