random boolean generator cercasi
Visto il successo del mio ultimo appello, provo a lanciarne uno nuovo. Sto cercando un metodo semplice ma efficace di generare stringhe di 0 ed 1 in maniera random con c++. Finora ho trovato soltanto applicazioni di rand()%2, ma questi algoritmi non vanno bene; generano sempre gli stessi numeri e messi in ciclo non sono affatto aleatori, generano stringhe cicliche. Ho visto con che con comandi srand le cose dovrebbero migliorare, ma tutti i codici che ho copincollato hanno solo peggiorato la situazione. Ora, prima di ficcare la testa e le mani in pacchetti seri come questi, volevo chiedere se esiste un metodo casalingo semplice-semplice per avere stringhe sufficientemente random (non devo fare Montecarlo, se anche non è una cosa perfettamente random non importa; basta che non sia perfettamente deterministica).

ciao tomate,
stai cercando un generatore di numeri casuali reale o un buon generatore di numeri pseudo-casuali? Mi sembra una domanda fondamentale alla quale devi rispondere prima di imbaracarti in ricerche decisive…
A presto
Stefano
Comment by Stefano — June 2, 2009 @ 2:08 pm
Bella domanda… non importa che i numeri siano veramente casuali, mi basta che il mio programma spanni l’insieme delle stringhe di zero e uno abbastanza uniformemente
011010011011010001011
101101100101010011010
011010110100100101100
010011011110010001001
111001101001001110100
Invece ottengo solo roba di questo tipo:
1111111111111111
0000000000000000
Oppure:
110110110110110110
101010101010101010
000100010001000100
Comment by Administrator — June 2, 2009 @ 2:14 pm
Hai provato a scriverti un linear congruent generator fatto in casa? Comunque sia, penso che questo problema sia già stato risolto in c++
hai cercato nelle librerie standard?
Comment by Stefano — June 2, 2009 @ 2:28 pm
No ero troppo pigro, speravo in due linee di codice ready-made (sono ancora alle primissime armi ma già ansioso di vedere qualche risultato). Credo che per divertimento proverò a costruirmi un LCG in casa.
Comment by Administrator — June 2, 2009 @ 2:31 pm
Hai provato ad inserire time(0) in srand?
#include “ctime”
srand(time(0));
Quanto sono lunghe le tue sequenze addirittura da riconoscere la ciclicità?
Comment by hronir — June 2, 2009 @ 9:23 pm