dannyelpocho
16-03-2017, 16:46
Salve a tutti, premesso che sono ancora alle prime armi quindi non spaventatevi nel caso in cui dica qualche caxxata colossale.
Sto implementando un codice in una parte del quale ho le seguenti righe:
x=(rand()%10);
if(x>=0&&x<5)
accettata=true;
Ciò che volevo era che il software generasse un numero casuale tra 0 e 9 e dopodiché qualora quel numero fosse stato compreso tra 0 e 5 , cambiasse il valore di accettata in true.
Queste righe sono scritte in un while che esce soltanto se accettata==true oppure se il tentativo di generazione viene effettuato tre volte (con un contatore faccio cont++ prima della chiusura del while).
Ora qual'è il punto, quando andavo a far partire il programma notavo che il risultato era sempre lo stesso..in particolare andando ad inserire un cout<<x prima dell'if ho visto che la sequenza di numeri è sempre 5,10,11.
Qualcuno sa spiegarmi il perché? C'è un modo più efficiente per generare numeri casuali (sempre diversi) tra due intervalli in c++?
Sto implementando un codice in una parte del quale ho le seguenti righe:
x=(rand()%10);
if(x>=0&&x<5)
accettata=true;
Ciò che volevo era che il software generasse un numero casuale tra 0 e 9 e dopodiché qualora quel numero fosse stato compreso tra 0 e 5 , cambiasse il valore di accettata in true.
Queste righe sono scritte in un while che esce soltanto se accettata==true oppure se il tentativo di generazione viene effettuato tre volte (con un contatore faccio cont++ prima della chiusura del while).
Ora qual'è il punto, quando andavo a far partire il programma notavo che il risultato era sempre lo stesso..in particolare andando ad inserire un cout<<x prima dell'if ho visto che la sequenza di numeri è sempre 5,10,11.
Qualcuno sa spiegarmi il perché? C'è un modo più efficiente per generare numeri casuali (sempre diversi) tra due intervalli in c++?