Newsgroup: it.comp.java
Titolo: Random number generator (distribuzione uniforme)

Ciao,
conoscete un buon algoritmo di numberi casuali (distribuzione uniforme) gia' 
implementato e che sia distribuito liberamente col sorgente?
Grazie,
fadeh 

>>>> "f" == fadeh  <fad...@NOSPAMgmail.com> writes:
f> Ciao, conoscete un buon algoritmo di numberi casuali (distribuzione
f> uniforme) gia' implementato e che sia distribuito liberamente col
f> sorgente?
Quello  implementato da  Sun mi  sa  che è  disponibile, con  sorgente
-anche se  in assembler MIX- sul volume  "Seminumerical Algorithms" de
"The Art of Programming" di Knuth.
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software

 "The Art of Programming" di Knuth.
E' mica lo stesso che si trova nel package java.util.qualcosa?
Lo chiedo perche' cercavo proprio qualcosa di alternativo :)
Ciao,
fadeh

fadeh ha scritto:

Credo che java.util.Random generi numeri secondo distribuzioni notevoli. 
La distribuzione Gaussiana la fa sicuramente; mi sorprenderebbe sapere 
che non fa quella uniforme.


Io avevo sentito parlare di un'ulteriore classe del jdk per i numeri
casuali. Ma sinceramente né ricordo né l'ho trovato cercando
velocissimamente  adesso :)

 non fa quella uniforme.
Mi sono spiegato male, provo a rimediare.
java.util.Random fa esattamente quello che mi serve, genera numeri 
pseudo-casuali secondo una distribuzione uniforme.
Tuttavia ho codato una piccola classe per calcolare pigreco usando un metodo 
monte carlo e dopo un miliardo di iterazioni dell'algoritmo ottengo un 
valore di pigreco giusto al massimo alla 5 cifra decimale (ma piu' spesso 
alla terza, a volte ottengono una precisione migliore utilizzando solo cento 
milioni di interazioni). Il problema non e' tanto nell'algoritmo, che e' 
banale, ma nel fatto che java.util.Random non e' un granche' come generatore 
di numeri pseudo-casuali (e' piu' pseudo che casuale).
Mi chiedevo se qualcuno avesse implementato altri algoritmi qualitativamente 
migliori dal punto di vista della casualita'.
Grazie,
fadeh 

 Mi sono spiegato male, provo a rimediare.
[cut]
In questo caso mi arrendo alla mia ignoranza :( Speravo che la pseudo 
casualità fosse tollerabile

 implementato e che sia distribuito liberamente col sorgente?
Premetto che non sono esperto sull'argomento.
Dai un occhiata a questa implementazione del Mersenne Twister
algorithm:
http://www.axlradius.com/freestuff/#MT


se trovi qualcosa, metti cmq un post...
sto usando java.utill.Random perchè è data come distribuzione uniforme, ma
cio che scrivi mi preoccupa...
grazie, ciao

 grazie, ciao
eddeche! :)
Ciao,
fadeh 

> de "The Art of Programming" di Knuth.
f> E' mica lo stesso che si trova nel package java.util.qualcosa?  Lo
f> chiedo perche' cercavo proprio qualcosa di alternativo :)
Io penso che leggersi il libro  di Knuth ne valga la pena. Non ricordo
quante pagine  usa per  l'argomento, ma sono  tante e con  un supporto
teorico ineccepibile. Non  è detto che in Sun  abbiano fatto un lavoro
eccezionale solo perché si sono ispirati a lui o che il suo lavoro sia
poco valido solo perché lo è l'implementazione di Java.
-- 
 /\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
  //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software
P.S.   Knuth è l'autore  di \TeX,  il cui  numero di  versione tendeva
asintoticamente a  Pi greco. Se non  erro il programma  ha ricevuto il
freeze definitivo, no more bugs left...