|
|
|
|
 |
|  |
 |
nous |
| [C]Rand() |
08-01-2004 13:59 |
|
 |
nous |
.:Retore Pomposo:.

Registered: Dec 2001
Posts: 2945 (0.33 al dì)
Location: Fino Mornasco - Como
Corso: Informatica
Anno: Specialista
Time Online: 16 Days, 13:56:49 [...]
Status: Offline
Edit | Report | IP: Logged |
[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)
|
|
08-01-2004 13:59 |
|
|
|  |
 |
|  |
 |
Renaulto |
| e' vero, prima devi inseminarlo con srand() ... |
08-01-2004 14:19 |
|
 |
Renaulto |
is fan of UTF-8

Registered: Aug 2002
Posts: 4064 (0.47 al dì)
Location:
Corso: Informatica
Anno:
Time Online: 96 Days, 0:23:57 [...]
Status: Offline
Edit | Report | IP: Logged |
e' vero, prima devi inseminarlo con srand()
__________________
Tanenbaum is overrated.
|
|
08-01-2004 14:19 |
|
|
|  |
 |
lorenzo |
| Semmai [B]srand48(long seed)[/B], o meglio [B]seed ... |
08-01-2004 15:31 |
|
 |
lorenzo |
...ma anche no.

Registered: Jun 2002
Posts: 3149 (0.37 al dì)
Location: Milano
Corso: F49
Anno: 00000011
Time Online: 49 Days, 1:47:46 [...]
Status: Offline
Edit | Report | IP: Logged |
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
Last edited by lorenzo on 12-01-2004 at 15:13
|
|
08-01-2004 15:31 |
|
|
|  |
 |
AlphaGamma |
| Nous, sei andato a vederlo il mio generatore perco ... |
08-01-2004 23:58 |
|
 |
AlphaGamma |
.piano ma pieni.

Registered: Jun 2002
Posts: 6732 (0.78 al dì)
Location:
Corso: Eh?
Anno: Io cosa?
Time Online: 21 Days, 21:22:01: [...]
Status: Offline
Edit | Report | IP: Logged |
Nous, sei andato a vederlo il mio generatore percorsi? 
Li faceva random, non ricordo come, ma randomizzava bene. 
http://www.dsy.it/forum/showthread.php?s=&threadid=2606
__________________
Attenzio', concentrazio', ritmo e VITALITÀ
|
|
08-01-2004 23:58 |
|
|
|  |
 |
| All times are GMT. The time now is 04:01. |
|
|
 |
|
 |
|
|
|  |
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|