Generare due numeri random indipendenti [RISOLTO]

di Anonimizzato19967 il
9 risposte
Salve a tutti,
per generare due numeri random indipendenti ho usato la libreria time.h e scritto questo:
		srand(  (unsigned) time(&t));
			dx1 = delta * (0.5 - (double) rand())/( (double ) RAND_MAX);
			dx2 = delta * (0.5 - (double) rand())/( (double ) RAND_MAX);
 
mi viene un dubbio: visto che i due sono molto vicini non è che mi genera gli stessi numeri perche non riesce ad apprezzare la differenza temporale? perche da quello che ho capito gli si dà "time" come seed per fargli generare ogni volta un numero diverso...
Grazie a chiunque perderà un po del suo tempo per rispondermi

9 Risposte

  • La srand la esegui solo una volta all'inizio del programma, giusto?
  • No , la srand sta anche lei dentro un ciclo, come le due chiamate a rand(). Ma non so se sia necessario, magari non lo è, ho fatto cosi perche pensavo generasse sempre lo stesso numero.
  • Sbagliato, la srand non deve stare in un ciclo ma eseguita una sola volta all'inizio del programma.
  • Per il teorema del limite centrale (che non e' il nome di qualche gioco da tavolo, ma un vero teorema di statistica), se tu cerchi di generare PIU' numeri casuali con DIVERSI generatori, ti accorgerai che la loro distribuzione assomigliera' sempre di piu' alla distribuzione gaussiana
    Cioe' non sembreranno randomindipendenti
  • Ma invece a me serve che lo siano
  • lacindy91 ha scritto:


    Ma invece a me serve che lo siano
    E' come volere una donzella ma che ragiona come un maschietto: non si puo' fare
  • Ma se non sai cosa ci devo fare non puoi dirlo quindi non è vera nemmeno la prima parte E poi il teorema del limite centrale non vale per la SOMMA di n variabili casuali? by the way, grazie mille
  • Torniamo sul codice ... se poni la srand all'inizio del codice (non nel ciclo), risolvi o no?
  • Si, a posto, grazie:)
Devi accedere o registrarti per scrivere nel forum
9 risposte