DOMANDA LGC c++

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

MPG

Utente Attivo
Messaggi
566
Reazioni
4
Punteggio
55
MI potete fare un esempio di programma in C++ molto sempleice utilizzando un generatore lineare congruenziale (LCG)?
Grazie a tutti.
 
Se esponi i dubbi e/o le difficoltà che incontri è più semplice aiutarti (e scriverti tutto l'esercizio non ti sarebbe d'aiuto).
 
é stato solo citato dal profma non l'ho capito sinceramente e come si utilizza con un programmino di esempio giusto per capire, ti ringrazio.
--- i due messaggi sono stati uniti ---
Avevo scritto in classe degli appunti, qualcosa del genere per generazione di 16 numeri casuali (void LCG) ma non so se ho scritto giusto...

Codice:
{
int n;
for (int i=0; i<16 ; i++)
n=(a*seed+c)% n
seed=n;
cout<<n<<endl;
}
 
Ultima modifica:
Qualcuno mi puo' spiegare se ho scritto giusto e se viene usato generalmente?
 
Beh, no, e' ovviamente sbagliato. l'algoritmo e' X(i+1) = (a * X(i) + c) Modulo N dove a,c,N sono costanti che vanno ben definite per avere una serie casuale, in genere N e' una potenza di due, X(0) e' il primo elemento (chiamato "seed"), tutti i parametri devono essere compresi tra 0 e N.
E' famoso perche' e' uno dei primi algoritmi usati, e' facile da implementare, occupa poca memoria, e' veloce, non ha bisogno di matematica complessa, era il favoriti agli albori dei computer quando avevavo solo semplici operazioni matematiche (era il metodo usato nei primi calcolatori tascabili per esempio). Ma i risultati non sono cosi' ottimali, e occorre definire le costanti in base al tipo di applicazione che stiamo usando. Ora come ora c'e' la "battaglia" tra i generatori di numeri pseudo-causali, importantissimi nella crittografia e nella analisi statistica e di simulazione. LCG e' ancora insegnato a scuola, vedo, con buone ragioni.

Ti lascio un po' di tempo per ragionare sul codice che hai scritto. Fai attenzione che le "costanti" rimangano tali (solo il numero casuale deve cambiare all'interno del loop. E fai attenzione alle parentesi graffe, che definiscono il "corpo" del ciclo, cosi' come hai scritto tu, solo l'istruzione immediatamente dopo il for viene iterata.
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità

Discussioni Simili

Indietro
Top