|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jun 2006
Città: Napoli
Messaggi: 786
|
[C++] Problema di randomizzazione di valori all'interno di una funzione in un ciclo
Ciao, ho il seguente problema:
Sto scrivendo un programma che calcoli le vincite del super enalotto e che calcoli n giocate sempre con la stessa combinazione giocata per fare una stima di quante volte si è vinto e quali premi. Ora: In una funzione chiamata void estrazione(); ho un array estratti[SIZE] che prende 6 valori da rand() % 90 + 1 tramite srand( (unsigned) time( NULL ); Quindi la funzione scritta nell'unità di progetto header.cpp è richiamata nel main.cpp tramite il solito #include "header.h" A questo punto nel main.cpp ho un ciclo for( k = 0; k < roll; k++ ){ estrazione(); } che avrebbe il compito di calcolare i risultati delle giocate e assegnare i punteggi ad eventuali vincite ed infine stampare quante volte si è vinto e quali premi. Mi funziona tutto, tutto tranne il fatto che la funzione richiamta nel main all'interno del ciclo non aggiorna la serie di numeri estratti, quindi i numeri giocati dall'utente si confrontano sempre con la stessa estrazione che viene stampata n volte invece di essere avviata n volte. Ora se rand(); si trova all'interno di un ciclo mi aggiorna i valori random ma se inserisco le variabili alla quale è associata rand() allinterno di uan funzione e metto quest'ultima in un ciclo i valori non vengono aggiornati...In pratica come si fa a far aggioranre dei valori random che non si trovano direttamente in un ciclo ma in una funzione la quale a sua volta si trova dentro un ciclo? Grazie.
__________________
Q9650@4140Mhz Voltaggi Feedback positivi ottenuti per vendite fatte a: Alfio89, Deskmat, Renato10, il mic, sosa, Emack - [ Lastre di Alluminio per modding computer ]
Ultima modifica di Riccardo88 : 12-11-2009 alle 19:28. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2006
Città: Napoli
Messaggi: 786
|
HO APPENA RISOLTO!!!!
Mi ero perso in un bicchier d'acqua....comunque per chi fosse interessato ho riprovato a riscrivere solo una porzione del programma,nella parte che mi interessava e così ho risolto,in pratica basta inserire srand( (unsigned) time( NULL ) ); all'esterno del ciclo ma nella main.cpp e non nel header.cpp perchè altrimenti stampa la funzione con gli stessi valori n volte invece di avviarla n volte. MITICO! P.S su 100 estrazioni ho preso solo un terno! E' proprio vero che bisogna avere un c... così per vincere qualcosa al Superenalotto fortuna che così facendo non ho speso niente! LOL
__________________
Q9650@4140Mhz Voltaggi Feedback positivi ottenuti per vendite fatte a: Alfio89, Deskmat, Renato10, il mic, sosa, Emack - [ Lastre di Alluminio per modding computer ]
Ultima modifica di Riccardo88 : 12-11-2009 alle 20:41. |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Jun 2005
Messaggi: 26
|
Ma anche meglio
srand( (unsigned) time( 0 ) ) |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2006
Città: Napoli
Messaggi: 786
|
Al momento il prof in laboratorio ci ha fatto vedere così, con NULL.
Come mai dovrebbe essere meglio mettendo lo 0?
__________________
Q9650@4140Mhz Voltaggi Feedback positivi ottenuti per vendite fatte a: Alfio89, Deskmat, Renato10, il mic, sosa, Emack - [ Lastre di Alluminio per modding computer ]
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:53.










Feedback positivi ottenuti per vendite fatte a: Alfio89, Deskmat, Renato10, il mic, sosa, Emack 









