June 2, 2009

random boolean generator cercasi

Filed under: c++ tutorial

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).

5 Comments »

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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



Lascia un commento



Anti-spam measure: please retype the above text into the box provided.



Get free blog up and running in minutes with Blogsome
Theme designed by Helga Cleve and widely (wildly)
rearranged by matteoeo (sorry helga!)