View Full Version : Casualità in java
Ciao Raga...
in java dovrei creare casualmente successioni di 0 e 1...come faccio?...
es: 10100100101010100010010101010101010101111110001
:sofico:
Ziosilvio
26-03-2005, 14:42
Se ricordo bene, ci sono un metodo java.lang.math.random e una classe java.util.Random --- prova a leggere la documentazione.
NOTA: generare stringhe binarie pseudorandom con buone proprietà statistiche non è semplice come sembra; ne abbiamo parlato diffusamente in un paio di thread di questa sezione.
Grazie Silvio...ma non è un problema non ho bisogno di quel rigore statistico/probabilistico...cmq la random per quel che ho visto permette di generare numeri casuali al max con un seme di partenza
Ziosilvio
26-03-2005, 15:56
Originariamente inviato da sonique
non ho bisogno di quel rigore statistico/probabilistico
Meglio così.
la random per quel che ho visto permette di generare numeri casuali al max con un seme di partenza
Allora: anzitutto, su un computer hai al massimo dei generatori pseudorandom, dato che comunque usi degli algoritmi per generare delle sequenze --- e come diceva John von Neumann (http://www-groups.dcs.st-andrews.ac.uk/~history/Mathematicians/Von_Neumann.html), "chiunque consideri metodi aritmetici di produzione di cifre casuali è, ovviamente, in uno stato di peccato".
La maggior parte di questi generatori producono una sequenza x_1, x_2,...,x_n... a partire da un valore fissato x0, detto seme della sequenza.
Quindi, una volta stabilito il seme, la sequenza è totalmente definita.
Ora, la classe Random del package java.util ha due costruttori: Random() che inizializza il seme secondo un metodo predefinito (non con un valore fisso, a quanto ho capito da un paio di esperimenti), e Random(long) che lo inizializza con un valore specifico.
A te dovrebbe essere sufficiente una variabile di tipo Random, inizializzata come ti fa più comodo.
Oddio Zio scusa ma mi sa ke nn ho capito...:oink:
Cioe per avere questa sequenza pseudocasuale di zeri ed uno come devo fare?
Io ho usato l'oggetto Random, utilizzando poi il metodo nextBoolean, che sembra ottimizzato proprio per generare valori binari casuali (true o false, 0 o 1, la stessa cosa)
Grazie ragazzio...ho risolto con la seguente istruzione:
int generate = (int) (Math.random() * 2);
e tutto funziona...provare per credere ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.