.dsy:it.
Show 150 posts per page

.dsy:it. (http://www.dsy.it/forum/)
- Forum De Bell Tolls (http://www.dsy.it/forum/forumdisplay.php?forumid=7)
-- [C]Rand() (http://www.dsy.it/forum/showthread.php?threadid=7854)


Posted by nous on 08-01-2004 13:59:

[C]Rand()

Un piccolo problema con il C... devo generare n numeri random uniformemente distribuiti in (0,1).
Sapendo dell'esistenza di drand48() che proprio di questo si occupa, l'ho utilizzata. Senonchè non è possibile inizializzare drand48() passandogli un valore come si fa comunemente con rand().
Allorchè ho pensato : uso rand(time(NULL))/MAX_RAND e ottengo dei valori uniformemente distribuiti tra [0,1] , probabilmente non mi usciranno mai lo 0 e l'1 e quindi vabbene lo stesso perchè almeno inizializzo il generatore di numeri random in maniera diversa ad ogni lancio del programma.
Ma , incredibile dictu, mi da dei problemi proprio sul time(NULL), il problema lo posto estensivamente domani ma fondamentalkmente non funziona se non eliminando time(NULL), e a quel punto tanto vale usare drand48() che mi genera un intervallo aperto.
Tutto chiaro, no?Avete idee??Il sistema operativo è ovviamente Linux, Red Hat 9.Grazie a chi mi aiuta.

__________________
Cristian,il Nous che invoglia ^_^

"La capa è troppo in la,e la sbarba è troppo giovane..mi sa che qua si va in bianco"
Ryo Saeba (City Hunter)


Posted by Gwath on 08-01-2004 14:02:

hai provato a inizializzare il seme con srand(valore) e poi a fare rand()/MAX_RAND ???

__________________
L'ombra si nasconde nella notte, laddove neanche l'occhio piu' allenato riesce a scorgerla...
:teach:Homo sapiens non urinat in ventum:teach: Non c'è birra senza spina :teach: La vita e` il dono piu` prezioso che Giove ci ha fatto (Ali G) :teach:
Mastro Birromane della Falange Alcolica...
Gwath Lumbule... as darkness falls, he comes out! Dark Shadow's Blog
:roargh: Tu mi dai la forza per andare avanti... Non fermarti continua a spingere!!!:roargh:


Posted by Renaulto on 08-01-2004 14:19:

e' vero, prima devi inseminarlo con srand()

__________________
Tanenbaum is overrated.


Posted by lorenzo on 08-01-2004 15:31:

Semmai srand48(long seed), o meglio seed48(unsigned short seed[3]), che come parametro vuole un vettore con i 3 interi che compongono il seme da 48 bit, e ritorna il puntatore al vecchio seme (di cui puoi anche fregartene bellamente).

Ma non ho capito se tu vuoi un intervallo aperto o chiuso... drand48 ti dà un double nell'intervallo [0, 1) mi pare.


EDIT:
Che poi, se il problema è con la time(), continuerà a esserci visto che probabilmente userà la stessa funzione per inizializzare il seme (inizializzare con una costante non ha molto senso...)

__________________
Non ti laureare, continua a cazzeggiare!

"È tutta merda..." - clod81


Posted by AlphaGamma on 08-01-2004 23:58:

Nous, sei andato a vederlo il mio generatore percorsi? :D
Li faceva random, non ricordo come, ma randomizzava bene. :)

http://www.dsy.it/forum/showthread.php?s=&threadid=2606

__________________
Attenzio', concentrazio', ritmo e VITALITÀ


All times are GMT. The time now is 11:23.
Show all 5 posts from this thread on one page

Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.