Newsgroup: it.comp.lang.c++
Titolo: Un numero VERMANENTE casuale...

C++
Come si fa per avere un numero vermanente casuale?
Con randomize e poi random vengono sempre le stesse sequenze.
Grazie.
--
MAirJ Daniele ->  
dan...@usa.net
 - ICQ  35961669

Grazie.
Premesso che ottenere sequenze veramente casuali e` impossibile, ti sei ricordato di
inizializzare il generatore?
Paolo
------------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
------------------------------------------------------------------

Come si fa per avere un numero vermanente casuale?
 vermamente nel senso che ci vuoi pure il verme? A parte gli scherzi
ottenere numeri casuali è impossibile da un computer. Molti inizializzano il
generatore con il timer interno del computer. In questo modo otterrai sempre
numeri diversi, ma non casuali :)

Ho letto articoli riguardanti la registrazione dalla scheda audio del
cosiddetto rumore bianco, cioč l'immancabile rumore che viene generato nella
registrazione e causato dall'elettronica e dalle interferenze esterne. In
pratica registri dal line-in o dal mic-in per qualche istante e poi utilizzi
la sequenza come seme per la generazione di un numero casuale o sfrutti
proprio i dati registrati come numeri casuali.
Inferno.

mica male come idea... oppure utilizzando il movimento del mouse :)


Non so se stai scherzando, comunque č un metodo molto meno dispendioso della
registrazione del rumore bianco... Resta il problema (nei due casi) di
tenere spento il microfono o di muovere il mouse. Forse calcolare un numero
in base ad un tasto premuto e per il tempo che esso č premuto offrirebbe
qualche vantaggio in piů...
--
San Vegeta from Hell
Nuovo proverbio babilonese:
"Tanto va il Bruno al bug che ci lascia il rimedino..."

 qualche vantaggio in più...
C'e' poi la generazione in hardware - diversa da quella pseudorandom in
software ma che garantisce la casualita'. E cosa sia meglio (o semplicemente
adatto) dipende molto da cosa devi fare (un'interessante discussione in
proposito e' in RFC1750 - Randomness Recommendations For Security, che trovi
in rete all'IETF).
Divertente in proposito l'uso delle lampade Lava Lite (quelle che hanno
all'interno un materiale viscoso in continua evoluzione..) e che garantiscono
casualita' ma che, ancora, richiedono una componente hardware (la lampada) non
indifferente.. pero' e' un bel soprammobile - vuoi mettere? (
lavarand.sgi.com
)
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/
       Search, Read, Discuss, or Start Your Own    

qualche vantaggio in più...
Il problema e` che i comportamenti umani sono molto
piu` ripetitivi di quanto sembra...


>Non so se stai scherzando, comunque è un metodo molto meno dispendioso
della
non scherzo affatto, conosco persone che lo hanno già sperimentato! tenendo
conto dei movimenti x y e la pressione dei tasti. Se non fosse abbastanza
casuale si potrebbe combinare col timer, poi con l'ordine di pressione dei
tasti della tastiera. Cosa c'è di meglio di una persona inconsapevole di
generare numeri casuali scrivendo un testo e muovendo il mouse.

Scusate, ma a cosa serve un numero _veramente_ casuale?  Ho cominciato
a scrivere simulazioni e Montecarlo probabilmente prima che la maggior
parte di voi nascesse,..  Come fate a debuggare un programma di
simulazione senza una sequenza ripetibile?
BTW, ho trovato un generatore ancora migliore di quello che ho postato
l'ultima volta che mi sono lasciato coinvolgere nelle discussioni sui
numeri a caso.  Se a qualcuno interessa...
-- 
Maurizio Loreti                      
http://wwwcdf.pd.infn.it/~loreti/mlo.html
Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it

 numeri a caso.  Se a qualcuno interessa...
A me si. Grazie.
EMG

 when you write.
******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
/**
 | uint32 must be an unsigned integer type capable of holding at least 32
 | bits; exactly 32 should be fastest, but 64 is better on an Alpha with
 | GCC at -O3 optimization so try your options and see what's best for you
**/
typedef unsigned long uint32;
#define N            (624)                /* length of state vector          */
#define M            (397)                /* a period parameter              */
#define K            (0x9908B0DFU)        /* a magic constant                */
#define hiBit(u)     ((u) & 0x80000000U)  /* mask all but highest   bit of u */
#define loBit(u)     ((u) & 0x00000001U)  /* mask all but lowest    bit of u */
#define loBits(u)    ((u) & 0x7FFFFFFFU)  /* mask     the highest   bit of u */
#define mixBits(u,v) (hiBit(u)|loBits(v)) /* move hi bit of u to hi bit of v */
#define UINT32MAX    (0xFFFFFFFF)         /* the biggest value               */
#define TWOM32 (2.3283064365386963E-10)   /* (double) 2^(-32) */
static uint32  state[N+1];   /* state vector + 1 extra to not violate ANSI C */
static uint32 *next;         /* next random value is computed from here      */
static int     left = -1;    /* can *next++ this many times before reloading */
void seedMT(
  uint32 seed
) {
/**
 |
 |  We initialize state[0..(N-1)] via the generator
 |
 |    x_new = (69069 * x_old) mod 2^32
 |
 |  from Line 15 of Table 1, p. 106, Sec. 3.3.4 of Knuth's
 |  _The Art of Computer Programming_, Volume 2, 3rd ed.
 |
 |  Notes (SJC): I do not know what the initial state requirements
 |  of the Mersenne Twister are, but it seems this seeding generator
 |  could be better.  It achieves the maximum period for its modulus
 |  (2^30) iff x_initial is odd (p. 20-21, Sec. 3.2.1.2, Knuth); if
 |  x_initial can be even, you have sequences like 0, 0, 0, ...;
 |  2^31, 2^31, 2^31, ...; 2^30, 2^30, 2^30, ...; 2^29, 2^29 + 2^31,
 |  2^29, 2^29 + 2^31, ..., etc. so I force seed to be odd below.
 |
 |  Even if x_initial is odd, if x_initial is 1 mod 4 then
 |
 |    the          lowest bit of x is always 1,
 |    the  next-to-lowest bit of x is always 0,
 |    the 2nd-from-lowest bit of x alternates      ... 0 1 0 1 0 1 0 1 ... ,
 |    the 3rd-from-lowest bit of x 4-cycles        ... 0 1 1 0 0 1 1 0 ... ,
 |    the 4th-from-lowest bit of x has the 8-cycle ... 0 0 0 1 1 1 1 0 ... ,
 |     ...
 |
 |  and if x_initial is 3 mod 4 then
 |
 |    the          lowest bit of x is always 1,
 |    the  next-to-lowest bit of x is always 1,
 |    the 2nd-from-lowest bit of x alternates      ... 0 1 0 1 0 1 0 1 ... ,
 |    the 3rd-from-lowest bit of x 4-cycles        ... 0 0 1 1 0 0 1 1 ... ,
 |    the 4th-from-lowest bit of x has the 8-cycle ... 0 0 1 1 1 1 0 0 ... ,
 |     ...
 |
 |  The generator's potency (min. s>=0 with (69069-1)^s = 0 mod 2^32) is
 |  16, which seems to be alright by p. 25, Sec. 3.2.1.3 of Knuth.  It
 |  also does well in the dimension 2..5 spectral tests, but it could be
 |  better in dimension 6 (Line 15, Table 1, p. 106, Sec. 3.3.4, Knuth).
 |
 |  Note that the random number user does not see the values generated
 |  here directly since reloadMT() will always munge them first, so maybe
 |  none of all of this matters.  In fact, the seed values made here could
 |  even be extra-special desirable if the Mersenne Twister theory says
 |  so-- that's why the only change I made is to restrict to odd seeds.
 |
**/
  register uint32  x = (seed | 1U) & UINT32MAX;
  register uint32 *s = state;
  register int     j;
  for (left=0, *s++=x, j=N;   --j;   *s++ = (x *= 69069U) & UINT32MAX) { }
}
#if defined(REAL) || defined(OPENREAL)
double reloadMT(void)
#else
uint32 reloadMT(void)
#endif
{
  register uint32 *p0 = state;
  register uint32 *p2 = state+2;
  register uint32 *pM = state+M;
  register uint32  s0;
  register uint32  s1;
  register int     j;
  if (left < -1) seedMT(4357U);
  left = N-1;
  next = state+1;
  for (s0=state[0], s1=state[1], j=N-M+1;   --j;   s0=s1, s1=*p2++) {
    *p0++ = *pM++ ^ (mixBits(s0, s1) >> 1) ^ (loBit(s1) ? K : 0U);
  }
  for(pM=state, j=M;   --j;   s0=s1, s1=*p2++) {
    *p0++ = *pM++ ^ (mixBits(s0, s1) >> 1) ^ (loBit(s1) ? K : 0U);
  }
  s1  = state[0];
  *p0 = *pM ^ (mixBits(s0, s1) >> 1) ^ (loBit(s1) ? K : 0U);
  s1 ^= (s1 >> 11);
  s1 ^= (s1 <<  7) & 0x9D2C5680U;
  s1 ^= (s1 << 15) & 0xEFC60000U;
#if defined(REAL)
  return ((double) (s1 ^ (s1 >> 18)) / UINT32MAX);
#elif defined(OPENREAL)
  return ((double) (s1 ^ (s1 >> 18)) * TWOM32);
#else
  return (s1 ^ (s1 >> 18));
#endif
}
/* 'inline' the following procedure for maximum speed */
#if defined(REAL) || defined(OPENREAL)
double randomMT(void)
#else
uint32 randomMT(void)
#endif
{
  uint32 y;
  if (--left < 0) return(reloadMT());
  y  = *next++;
  y ^= (y >> 11);
  y ^= (y <<  7) & 0x9D2C5680U;
  y ^= (y << 15) & 0xEFC60000U;
#if defined(REAL)
  return ((double) (y ^ (y >> 18)) / UINT32MAX);
#elif defined(OPENREAL)
  return ((double) (y ^ (y >> 18)) * TWOM32);
#else
  return (y ^ (y >> 18));
#endif
}
int main()
{
  int j;
  /* you can seed with any uint32, but the best are odds in 0..(2^32 - 1) */
  seedMT(4357U);
  /* print the first 2,002 random numbers seven to a line as an example */
  for(j=0; j<2002; j++) {
#if defined(REAL) || defined(OPENREAL)
    printf("%10.8f%c", randomMT(), (j%7)==6 ? '\n' : ' ');
#else
    printf("%10lu%c", randomMT(), (j%7)==6 ? '\n' : ' ');
#endif
  }
  return EXIT_SUCCESS;
}

simulazione senza una sequenza ripetibile?
Non e` una problematica cui mi interesso molto, ma si potrebbe fare il
debugging usando sequenze ripetibili e poi utilizzare nelle applicazioni
pratiche le sequenze veramente random...
Infine ti rigiro la domanda...
A che servono i numeri casuali se bastano sequenze pseudo casuali?
Ovvero a che servono tutte le ricerche in merito?
Saluti,


 Ovvero a che servono tutte le ricerche in merito?
 
Davvero ti piacerebbe che un computer ogni tanto interrompesse il
flusso dell'elaborazione per presentare un punto interrogativo davanti
ad un omino munito di dadi/sostanze radioattive/circuito audio per
rumore bianco?
La sostanza e' che un numero pseudo-casuale deve obbedire alle stesse
proprieta' statistiche dei veri numeri casuali, ed essere da loro
indistinguibile pur essendo generato da un procedimento
deterministico; lo scopo della ricerca e' prima di tutto definire
queste proprieta', ed in secondo luogo trovare metodi rapidi ed
efficienti di generazione di questi numeri pseudo-casuali.


 > > numeri a caso.  Se a qualcuno interessa...
Grazie. Lo proverň al piů presto.
EMG

efficienti di generazione di questi numeri pseudo-casuali.
Quindi trovare un sistema efficiente e che fornisca numeri effettivamente
casuali sarebbe ancora meglio... non credi?
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
  Rigorosamente non certificato M$... Una garanzia di qualita`!
-----------------------------------------------------------------

 casuale)
Penso di non essere d'accordo. Se prendi una sequenza di numeri e non
sai come questa sia stata prodotta come fai a dire che non è veramente
casuale? Solo con test di tipo statistico che controllano più o meno la
loro distribuzione. E se questi vengono superati allora come puoi dire
che la sequenza non sia casuale anche se generata con una formula
deterministica? Comunque non sono del tutto d'accordo neanche sulla
validità di tali test. Cosa impedisce ad un evento casuale di ripetersi
uguale a se stesso per n volte? Solo all'infinito si può dire se una
sequenza sia casuale o meno?
EMG

sequenza sia casuale o meno?
E` la stessa differenza che c'e` tra il sembrare e l'essere...
Se una sequenza di numeri apparentemente casuale e` generata
deterministicamente e` possibile ripetere esattamente il fenomeno 
quando e come vuoi (altrimenti il processo non sarebbe deterministico).
Tutto cio` non e` possibile se la sequenza di numeri non sembra solo 
essere casuale, ma lo e` a tutti gli effetti; in questo caso ripetendo l'esperimento
non sei in grado (per quanto sia possibile) di riprodurre esattamente
gli stessi risultati.
Ovviamente e` chiaro che ai nostri fini e` sufficiente che i numeri prodotti
si distribuiscano in modo apparentemente casuale (in un certo qual modo
potremmo vedere il processo di generazione deterministico, come una
registrazione di un vero esperimento aleatorio). Il problema ovviamente e`
riuscire ad ottenere numeri che sembrino essere casuali (o che lo
siano effettivamente) e, ancora di piu`, ottenerli con un costo accettabile.
Ad ogni modo una sequenza pseudo-casuale e` per definizione non
casuale in quanto a monte ci sta un procedimento assolutamente *ripetibile
a comando* (e non semplicemente ripetibile). In un vero esperimento aleatorio
nulla garantisce che nelle stesse condizioni iniziali l'esperimento produca
identici risultati (cosa non vera per i numeri pseudo-casuali, basta inizializzare
il generatore sempre con lo stesso seme).
Spero di essemi spiegato.
Saluti,


Parliamoci chiaro: se io affermo "42 e' un numero a caso", ho ragione
o torto?  E' ovvio che non c'e' risposta.
Esiste una tabella di "veri" numeri a caso, che e' su qualche testo di
CS del mio Dipartimento, derivata da monete o simili, e che non ho sotto
mano ora; supponiamo per ipotesi che contenga i numeri "42, 666, 314, ...".
La domanda "i numeri 42, 666, 314 sono casuali?" ha due risposte
altrettanto valide: 1) SI, perche' vengono dal lancio di una moneta;
2) NO, perche' sono quelli della famosa tabella pubblicata su XYZ.
Questo per dire che non ha nessun senso parlare di casualita' o meno
di un numero sulla base della sua generazione o guardando a posteriori
una sequenza esistente r giudicandola sulla base di considerazioni
astratte.
Ha senso parlare di casualita' se una serie di numeri soddisfa una
certa definizione OPERATIVA basata sulle loro proprieta' statistiche e
che e' stata elaborata con sangue, sudore e lacrime da certi
matematici teorici.
Per definizione, sia quei numeri casuali che voi vi ostinate a
chiamare "veri" sia i numeri PSEUDOcasuali soddisfano a quella
definizione.
Conclusione: non c'e' ALCUNA DIFFERENZA tra i due.
Insomma: voi state parlando del sesso degli angeli.


 a comando* (e non semplicemente ripetibile).
Ma cosa ci dice che il processo veramente casuale che stiamo esaminando
non abbia alla base un meccanismo deterministico che al momento ci
sfugge? Come facciamo a decidere a priori se la sequenza è casuale o
pseudo-casuale?
EMG

 Conclusione: non c'e' ALCUNA DIFFERENZA tra i due.
Sono d'accordo.
EMG

Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it
-----------------------------------------------------------------


pseudo-casuale?
Ma quello che sostengo io non e` questo, il generico meccanismo che genera i numeri
pseudo-casuali e` noto e ci consente di fare previsioni certe.
In un esperimento aleatorio questa possibilita` manca!
Paolo


 di un elettrone, cosa che la fisica mi sembra di ricordare dica non essere possibile.
E' però possibile prevederla in senso statistico attraverso lo studio
delle funzioni d'onda.
EMG

delle funzioni d'onda.
Certamente, ma nel contesto della mia posizione il prevedere e` da
intendere in senso assoluto e non statistico.
Insomma quello che voglio dire e` *tenete sempre conto che state lavorando
con numeri pseudo-casuali e che quindi bisogna avere l'accortezza di
scegliere un buon algoritmo e prendere il seme iniziale in modo veramente
casuale perche` alla fine il gioco dipende da questo*


 Più che altro mi chiederei: cosè un numero _veramente_ casuale?
Be', entrambe le domande sono interessanti! Alla seconda si risponde in
fretta, almeno intuitivamente: un generatore di numeri casuali genera numeri
_veramente_ casuali :) quando per qualsiasi lunghezza di osservazione
dell'output i numeri generati hanno le stesse proprieta' statistiche di una
sequenza di estrazioni casuali della stessa dimensione. ;-) Una definizione
piu' accurata implicherebbe la correlazione asintotica ;-)
Sono piuttosto d'accordo con Maurizio Loreti: un buon generatore moderno ha
sequenze periodiche talmente lunghe che la differenza tra casualita' e
pseudocasualita' e' rilevante solo in pochissime occasioni. Ad esempio
(credo, perche' non ci ho mai lavorato... se Maurizio ha lavorato coi
montecarlo di sicuro ne sa' piu di me) sono simulazioni di fenomeni fisici in
cui si "richiedono" un gran numero di numeri casuali, ed in cui eventuali
periodicita' del generatore possono distorcere i risultati. Oppure, in
particolari applicazioni di crittografia.
--
God is Real, unless declared Integer



Vorrei esprimere la mia opinione al riguardo.
Avendo un piccolo background filosofico (ma basta anche quello scientifico)
alle spalle, posso affermare che una collezione di oggetti è casuale se:
1)Non si conosce o non esiste un parametro che permetta il confronto con
qualsiasi altra collezione di oggetti.
2)Se è invece noto il procedimento di aggregazione dei dati e i parametri di
confronto usati, allora la
sequenza è definibile casuale se essa non è MAI ripetibile volontariamente,
cioè applicando una determinata formula per ottenere un preciso risultato.
Mi spego meglio. Se prendiamo 50 monete da 100 lire e le tiriamo in aria, ci
aspetteremmo che esse non cadano tutte con lo stesso lato per terra. Però
potrebbe accadere!!! Anche 1000000 di volte consecutive. E' un evento
casuale perchè, riferendoci a sistemi aperti (quindi una reale condizione,
non un laboratorio attrezzato allo scopo), con la nostra idea di casuale,
non sappiamo come bisogna tirare in aria le monete per farle atterrare tutte
con la stessa faccia.
E' ovvio che non conviene mettersi a discutere sulla soggettività del
concetto di casualità (anzi, meglio: sulla nostra percezione di eventi
definibili casuali), perchè, in quanto soggettiva, è sempre esatto e spesso
diverso da quello che intende un'altra persona.


 matematici teorici.
Se permetti, io penso che sarebbe più esatto riferirsi alla procedura di
generazione di una sequenza casuale. Altrimenti una qualsiasi serie di
numeri sparata a caso non potrebbe essere considerata casuale.


Teorema (non ricordo di chi...):
Se si conosce la posizione esatta di un elettrone, non si conosce la sua
velocità; se si conosce la sua velocità in un punto, non si sa dove si trovi
esattamente l'elettrone.
Da questo teoreme scaturisce il bisogno di disegnare la traiettoria
dell'elettrone quando si parla di velocità dello stesso.

sequenza è definibile casuale se essa non è MAI ripetibile volontariamente,
Esattamente cio` che intendo dire io!


Teorema (non ricordo di chi...):
[omissis]
Se non erro trattasi del principio di indeterminazione di Haisenberg...


 periodicita' del generatore possono distorcere i risultati.
Bravissimo! Ottima osservazione. Questa č l'unica differenza effettiva
tra numeri veramente casuali e non che ho sentito finora.
EMG

 dell'elettrone quando si parla di velocità dello stesso.
Questa frase non l'ho capita.
EMG


ICQ #34602650

 Un. of Padova, Dept. of Physics - Padova, Italy          
lor...@padova.infn.it
Scusa, ma probabilmente dipende molto dal problema che si vuole studiare.
Qui a Pisa insistevano molto sul fatto che 
per risolvere certi problemi i migliori generatori
di numeri casuali sono deterministici (almeno nel corso di reti di
calcolatori della facolta` di Ingegneria).
La giustificazione sta nel fatto che  alcuni teoremi sono applicabili
solo quando gli istanti di arrivo dei "pacchetti" in ingresso ad un
commutatore di una rete per dati costituiscono una variabile aleatoria
con funzione di distribuzione nota (ad esempio Poissoniana).
Se i numeri fossero "veramente" casuali non si potrebbe dire che
gli ingressi del commutatore sono Poissoniani e quindi certi teoremi
non si potrebbero applicare. Per quel poco che ne so chi si occupa
di simulazioni di reti di calcolatori qui a Pisa in genere segue un
approccio del tipo seguente (anche se non mi occupo di queste cose per cui
potrei sbagliarmi):
generiamo una variabile casuale con funzione di distribuzione nota (spesso
Poissoniana) ed
usiamola come sequenza degli istanti di arrivo su un commutatore. 
Ancor prima di fare la simulazione calcoliamo teoricamente le
statistiche che interessano (ad esempio tempo medio di permanenza in coda
di un pacchetto, numero medio di pacchetti in coda in un commutatore, ecc.).
Poi facciamo la simulazione con gli ingressi Poissoniani. In questo modo
si ha una prima verifica dell'esattezza dei calcoli. Poi si puo` ripetere
la simulazione con sequenze di istanti di arrivo che si discostano da una
poissoniana per vedere se i calcoli teorici ricavati nel caso di arrivi di
Poisson consentano di avere una stima ragionevolmente approssimata anche nel
caso in cui gli istanti di arrivo non siano poissoniani.
In questa ottica mi sembra che abbia senso distinguere numeri "veramente"
casuali da numeri "pseudo" casuali (altrimenti non si potrebbero applicare
i teoremi che valgono solo quando gli ingressi sono poissoniani).
Marco Guidi

 Esattamente cio` che intendo dire io!
Mi dispiace ma non sono d'accordo. Se io ho campionato una serie di
eventi casuali e poi ripeto più volte la sequenza generata, solo questo
non può trasformarla in meno casuale di quanto era all'origine. L'unico
problema che vedo è la sua limitatezza nel senso che la sequenza ideale
dovrebbe essere infinita e non finita o ciclica.
EMG




 wrote in message
372F24B0...@flashnet.it...


 Uhu? ...
Appunto. :)


 quelle caratteristiche verrebbero a mancare
Momento. Un generatore 'a seme', di solito, ha come condizione d'uso proprio
il fatto che tu non faccia cosi', cioe' non usi sempre lo stesso seme! Con
alcuni generatori cio' che e' garantito e' che usando una sequenza di semi
'semplice' (per esempio, la successione 1,2,3, ... ) ottieni sequenze casuali
diverse - le cui proprieta' statistiche *non* sono facilmente inducibili
dalla sequenza dei semi usati. In altre parole, non puoi determinare
facilmente la successione di semi osservando le sequenze di numeri
generati... questa sorta di "super"- pseudocasualita' non e' difficile da
ottenere, se non ricordo male.. sotto condizioni non terribilmente
restrittive, corrisponde grosso modo ad usare l'output di un generatore come
seme per una sequenza di generazioni.


dovrebbe essere infinita e non finita o ciclica.
Dipende, se per fare una sequenza di simulazioni su un fenomeno coinvolgente
componenti aleatorie utilizzi sempre gli stessi valori per tali componenti, non
puoi piu` fare statistiche sulla base di tutte le simulazioni, ma solo su una poiche`
le simulazioni sono tutte identiche. Puoi pero` utilizzare la sequenza per fenomeni
diversi...
La sequenza che tu registri e` casuale nel senso che e` stata generata casualmente,
ma poi ripetendola escludi altre possibili sequenze che potevano essere inizialmente
generate, inficiando cosi` i risultati successivi in una serie di ripetizioni dello stesso
esperimento.
Pensa un po' a cosa accadrebbe se al lotto si introducesse la seguente regola:
"per i primi tot anni normali estrazioni, dopo di che` si ripetono ciclicamente le
estrazioni degli anni precedenti". Non puoi piu` considerare le successive estrazioni
come frutto del caso, poiche` sono state manipolate alla base... una infinita` di eventi
possibili vengono ad essere esclusi (pensa ad un numero che per i primi tot anni
non sia stato estratto...)
Secondo me ti stai impelagando nell'ambiguita` del linguaggio naturale.


 non sia buono. In fondo, che senso ha usare una sequenza infinita?
Si, la sequenza limitata è equivalente a quella infinita però a patto
che questo non influisca negativamente sull'esperimento. Se
l'esperimento richiede un milione di numeri e la sequenza ne può fornire
al massimo 65536 allora sicuramente non sarà adatta e se ne dovrà
trovare una più lunga.
EMG

 intorno.
Le due grandezze posizione e velocità (più esattamente quantità di moto)
non possono essere conosciute esattamente entrambe, almeno secondo il
principio di indeterminazione. Se cerchi di misurare esattamente l'una,
l'altra potrà assumere qualsiasi valore. Inoltre l'elettrone non si
trova su una linea ma su una cosa molto più complicata. Teoricamente in
tutto lo spazio, ma i punti in cui è più probabile trovarlo hanno forme
geometriche tridimensionali abbastanza complesse come lobi o tori.
EMG

il fatto che tu non faccia cosi', cioe' non usi sempre lo stesso seme! 
Infatti... e` cio` su cui batto: la casualita` delle sequenze generate con tali
generatori e` affidata a "qualcosa che sta` sopra".
Paolo
-----------------------------------------------------------------
  Paolo Marotta
  Computer Science, University of Pisa
  home:   
http://www.cli.di.unipi.it/~marotta
-----------------------------------------------------------------

 Secondo me ti stai impelagando nell'ambiguita` del linguaggio naturale.
A me sembra che stiamo dicendo la stessa cosa. Io ho detto che la
sequenza ideale deve essere infinita ed infatti quest'ultima andrebbe
bene anche per il lotto. Per esperimenti che non richiedano un numero di
valori così alto potrebbe invece andar bene anche una sequenza ciclica
come quelle generate dai normali algoritmi a congruenza.
EMG

 Ohibo', si' - e' l'unica possibile. :^)
Ma non risponde alla _mia_ domanda che era "cos'è un numero _veramente_
casuale?". Qualsiasi fenomeno che _sembra_ casuale potrebbe invece
essere regolato da una legge ancora non scoperta. E allora?
EMG


E' proprio questo il punto! :) La nozione 'intuitiva' di casualita' (un
numero e' casuale se non c'e' una legge deterministica sotto) non e'
sufficientemente potente per essere usabile, ed e' esposta a critiche come la
tua (se si scopre la legge, il fenomeno non e' piu' casuale!). Quindi, non e'
una "buona" definizione operativa: ce ne serve un'altra... si definiscono le
proprieta' che un fenomeno (ad es. una sequenza di numeri) deve avere per
esser definito casuale; si esamina un'istanza del fenomeno verificando se
possiede quelle proprieta'; se le ha, e' "veramente" casuale, altrimenti no.
Completamente a prescindere dal fatto che ci sia 'sotto' una legge o meno.
I generatori pseudocasuali sono ...pseudo :) perche' tali proprieta' sono
verificate *solo* in condizioni particolari (tipicamente entro un certo
periodo ciclico), piu' restrittive delle condizioni poste dalla definizione,
e *non* perche' c'e' una legge deterministica sotto. Se per ipotesi avessi un
generatore in grado di creare una sequenza aperiodica etc, tale sequenza
sarebbe casuale, non pseudocasuale, anche se c'e' una legge precisa (e nota)
sotto.
Discussione interessante, non c'e' dubbio! :)


 EMG
Scusate, sto seguento il thread ma non ci sto capendo piu` niente.
Inizialmente avevo pensato che chi ha chiesto la generazione di
numeri _veramente_ casuali chiedesse un sistema per generare numeri
di cui non sia nota la funzione di distribuzione, cioe` credevo che
si volessero genere
numeri in modo tale che il generatore non sappia nemmeno 
ad esempio se i numeri che genera sono equiprobabili o meno 
(non so a cosa possa servire tale sequenza, ne' se la si possa in qualche
modo generare o meno, ma pensavo comunque che la richiesta iniziale fosse
questa; infatti per me una sequenza di numeri _veramente_ casuali e`
una sequnza generata da un generatore che non ha la piu` pallida
idea di quale sara` la funzione di distribuzione/massa di probabilita`
dei numeri che sta generando).
Poi pero` ad un mio post precedente mi e` stato risposto (in privato) che in 
tutto il thread si parla comunque di sequenze di numeri equiprobabili 
(distribuzione uniforme) sia nel caso di sequenze {pseudo}casuali che
{veramente}casuali per poi poter ricavare sequenze a distribuzione
qualsiasi dalla sequenza a distribuzione uniforme generata (almeno io ho 
interpretato cosi` la risposta, anche se non saprei come ricavare una
sequenza a distribuzione incognita da una sequenza a distribuzione nota). 
Pero` rileggendo i messaggi non capisco da cosa si evince che si
volesse _comunque_ una sequenza di numeri equiprobabili.
Marco Guidi 
 

 ad esempio se i numeri che genera sono equiprobabili o meno
Da parte mia questo problema non mi era neanche venuto in mente. Io
cercavo solo di affermare che le sequenze pseudo-casuali possono essere
altrettanto valide di un vero generatore di numeri casuali (qualunque
cosa significhi) a patto che la loro ciclicità non influisca con
l'esperimento nel quale vengono utilizzate.
EMG

 Discussione interessante, non c'e' dubbio! :)
Lo dici con ironia? Per me lo è. Considero la casualità uno di quei
problemi che, se esplorati fino alle estreme conseguenze, ti portano
all'origine dell'universo. Non so se capisci ciò che voglio dire.
EMG


Bhe, ovvio. Però si suppone che un programmatore ci pensi a sto genere di
problemi, sennò è una schiappa più di me... :-)


E allora non è più casuale, se la metti su questo piano. Se rimaniamo sul
piano degli osservatori poco coscienti di ciò che accade, allora possiamo
considerare una sequenza non "oggettivamente" casuale come tale. O no?

 wrote in message
37310B7E...@flashnet.it...


 considerare una sequenza non "oggettivamente" casuale come tale. O no?
Non ho capito. Quello che intendo dire è che se statisticamente (e
questo, da quello che ho capito, è l'unico strumento che abbiamo per
analizzare degli eventi casuali) il fenomeno risulta casuale allora poco
importa come questo sia stato generato. Sempre con la riserva che
l'analisi completa dovrebbe prevedere un numero sufficiente di campioni,
come tutte le rilevazioni statistiche d'altronde.
EMG

 più tangibili (non nel senso prettamente fisico)?
Forse si. Comunque io trovo il discorso interessante.
EMG


Nessuna ironia, ritengo questo tipo di discussioni *veramente* interessanti 
(francamente, piu' del "come si usa set<X> per la classe Pippo?") perche' 
conducono a precisare e comprendere cosa esattamente si intende quando si 
parla.. e credo di capire bene cio' che intendi: la mia specialita' 
"accademica" sono le scienze cognitive, dove dalle macchine a stati arrivi a 
cercare di comprendere e dare una base formale a cosucce la coscienza e i 
meccanismi di comprensione. E il fatto che motivi di mercato mi hanno portato 
a dover mettere in secondo piano quel tipo di ricerca e' una delle poche cose 
che rimpiango..
Ciao,
 
 Cris

> sequenza sia casuale o meno?
Il concetto di "non casualita'" non e' deterministico per natura, 
semplicemente perche' lo stesso concetto di casualita' non puo' essere 
ristretto ad un dominio specifico.
-- 
 [darXstar@Eleanor]$Phantom_Menace_
        * 
darXstar.tin.it
        * FidoNET 2:335/241.5
        * ICQ 11151997
 
http://darxstar.cjb.net

 ho buone possibilita' che i numeri che escono fuori sono diversi
Secondo me è invece molto probabile che tu ottenga sempre lo stesso
numero.
EMG

 dall'era moderna.
Che vuol dire?


perche' sicuramente il problema che e' sorto oggi e' stato risolto ieri...
Una visione troppo ottimista... ci sono molti problemi inrisolti ieri e
tutt'ora senza soluzione.
