Generazione numeri pseudocasuali in C

di Nexus99 il
7 risposte
Ho un dubbio sulle funzioni rand(), lrand(), drand().
Qual è la differenza dalle 3?
Vanno inizializzare? Se si come?
Potreste darmi un esempio di un semplice utilizzo di queste funzioni?

7 Risposte

  • Per rand() ci sono fantastiliardi di esempi anche su questo forum.

    lrand() e drand() cosa sono? Immagino funzioni non standard per fare direttamente il random di un long o di un double. Se ci pensi attentamente non ti servono
  • Ah ok erano drand48() e lrand48(). Vabbé il discorso non cambia
  • Più che altro non mi è chiaro come si devono dichiarare, ad esempio sul mio libro c'è un esempio in cui lrand48 è dichiarata a sua volta con un'altra funzione srand48 il cui argomento è seed. Ogni volta che uso lrand48 è così? E se è solo rand() devo fare sempre questo tipo di dichiarazione?
  • Mostra questo esempio perché non si capisce ...

    Hai letto la documentazione dai link?

    The srand48(), seed48() and lcong48() functions are initialization functions, one of which should be called before using drand48(), lrand48() or mrand48().
  • Apposto, ho letto la documentazione e ho capito. A questo punto mi chiedevo, ma perchè usare lrand48 (o le altre con il 48) anziché usare rand()?
  • Qui ci sono le formule (in realtà è una formula sola, cambiano i coefficienti)
    http://en.wikipedia.org/wiki/Linear_congruential_generator

    i rand48 sono a 48 bit e quindi sono più "fitti" quando usi, ad esempio, un double che è a 64 bit. Ma questo è ininfluente nel 99% delle applicazioni, mentre nell'altro 1% probabilmente hai bisogno di un generatore real random
Devi accedere o registrarti per scrivere nel forum
7 risposte