In una piccola applicazione scritta in C / C ++, sto affrontando un problema con rand
funzione e forse il seme:
Voglio produrre una sequenza di numeri casuali che sono di ordini diversi, cioè con valori di logaritmo diversi (base 2). Ma sembra che tutti i numeri prodotti siano dello stesso ordine, oscillando tra 2 ^ 25 e 2 ^ 30.
È perché rand()
è seminato con il tempo Unix che è ormai un numero relativamente grande? Cosa sto dimenticando? Sto seminando rand()
solo una volta all'inizio del main()
.
rand()
di restituire numeri distribuiti uniformemente (la documentazione con un alto ranking di Google lo dice esplicitamente), non penso che questa domanda sia utile per i futuri lettori. Ecco perché vota verso il basso ma non lasciarti scoraggiare dall'uso di SO.