x R3GM4ST3R
scusa? mi sembra abbastanza normale quello che dici! Anche su linux (parlo di ciò su cui ho esperienza) funziona in questo modo.
Ogni algoritmo per generare numeri casuali è uno pseudo-generatore di numeri casuali, quindi non si piò avere la totale casualità.
Parti da quì.
Questo vuol dire che, usando sempre lo stesso algoritmo, se si fa partire il generatore dalla stessa impostazione iniziale, il risultato finale sarà lo stesso. Questo si concretizza con l'uso dei "seed" (seme), ovvero si da in pasto all'algoritmo un numero iniziale, se i due numeri sono diversi il risultato sarà completamente diverso.
Forse mi sono spiegato male, ti faccio vedere:
// codice C
srand(time(NULL)); //srand si usa per resettare il generatore di numeri
// casuali e dare un SEED manualmente
// time(NULL) ritorna il clock di sistema, un numero
// molto elevato (quì poco importa) che cambia
// ogni secondo
int a = rand(); // credo...
se tu fai andare questo codice due volte in un secondo, il programma
produrrà DUE volte lo STESSO numero "casuale", perchè l'algoritmo è stato resettato due volte con lo stesso numero (time(NULL) non cambia in un secondo). Il segreto è usare "srand()" solo una volta, all'inizio del programma o comunque quando ritieni necessario, e poi utilizzare rand() quante volte ti pare, il risultato sarà sempre diverso, e pseudo casuale, ovvero i numeri non saranno veramente casuali ma la loro distribuzione sarà lineare (o gaussiana, ora non ricordo, credo che dipenda dall'implementazione).
Ciao!
P.S. non credo che il problema di XP sia quello che hai riscontrato tu, quindi...
|