Newsgroup: it.comp.lang.c
Titolo: random

Come faccio a inizializzare il generatore di numeri pseudocasuale e generare 
un numero random tra 0 e 9.
Ho una documentazione sul c che riporta l' esistenza delle funzioni 
randomize() e random(int) presenti nell' header math.h. Tuttavia almeno 
nella mia distribuzione in tale header tali funzioni non esistono. Ho 
trovato funzioni analoghe nella stdlib.h tuttavia sono molteplici e non mi 
e' chiaro quali usare.   
-- 
Tre carabinieri attorno ad un'edicola di giornali: "E' uscito
Diabolik?".  "Non ancora".  E il maresciallo, ai suoi uomini:
"Circondate l'edicola!  L'abbiamo beccato, finalmente!".
                -- Da it.hobby.umorismo

 e' chiaro quali usare.
srand((unsigned)time(NULL)) al posto di randomize();
e rand() al posto di random().
Il modo veloce per ottenere quello che vuoi e':
- inizializzare il seed una volta sola, all'inizio del programma con:
srand((unsigned)time(NULL));
- usare poi: rand()%10; tutte le volte che ti serve un numero da 0 a 9.
Poi qualche altra persona su questo NG probabilmente ti spieghera' che la
formula: rand()%10; non e' la migliore, ci sono varianti migliori, ma questa
e' certamente la piu' semplice e "pulita", e per applicazioni semplici va
bene.
Se ti servono numeri random migliori allora lascia stare persino le forme
alternative, usa piuttosto un altro generatore di numeri random!
Tommy

 alternative, usa piuttosto un altro generatore di numeri random!
se non ricordo male qualche anno fa si parlava dell'inserimento sulle mobo
di un condensatore che dal suo rumore generava numeri random ... ora mi
chiedo l'srandom del c cosa usa per generare i numeri ?
il /dev/random ed il /dev/srandom di linux che cosa sono ? o meglio dove
pescano i numeri ??
c'e' un modo di avere random sicuri ??? o come sempre bisogna attenerci al
seed ??? e semmai il seed lo possiamo rigenerare ogni tot tempo cosi da
cambiare i random ???
questo discorso mi interessa
ciao

 cambiare i random ???
Questo non e` da fare. Anche il semplice generatore della libreria C ha
un periodicita` molto lunga.
Kronos
-- 
Home: 
http://kronoz.cjb.net
Il coraggio non mi manca.
E` la paura che mi frega...

 buffer si riempia, urandom continua generando numeri pseudocasuali).
srandom invece ???
come mai non hanno pensato di implementarlo anche in win ??? vito che penso
che essendo il mac osx un derivato unix abbia anche lui i dev random ...
cmq come mai i costruttori di mobo non hanno pensato di rilasciare il driver
per usare il condensatore random ??? cioe' se si standardizzava
l'interfaccia del driver non ci fregava una cippola di dover fare diverse
versioni per ogni mobo ...
e se non si trovava il driver si usava il solito seed generator e si
avvisava l'utente (se l'applicazione deve essere sicura)
ciao

 questo discorso mi interessa
Spero ti interessi anche la mia risposta!
Se vuoi vuoi copiare le due funzioni (piu' variabile globale next) nel tuo
compilatore e fare delle prove!
Tommy

 come mai non hanno pensato di implementarlo anche in win ???
Mai dare per scontato che qualche cosa non esista! Forse la tua domanda
sarebbe dovuta essere:
"Esiste qualche cosa di simile sotto windows?"
Nel modo in cui poni la domanda sembra che tu sappia per certo che win non
ha nulla del genere!
Tommy

 portabilita'!
bhe tanto la portabilita' e' del codice sorgente non dell'eseguibile ... se
hai un targhet vai di preprocessore o di librerie di astrazione e risolvi il
problema ... no ???
cmq grazie delle risposte
ah ora mi viene in mente un'altra cosa ... come mai molti pgp chiedono input
utente invece di pescare nei rnd ???