DOMANDA LGC c++

Stato
Discussione chiusa ad ulteriori risposte.

MPG

Utente Attivo
544
4
MI potete fare un esempio di programma in C++ molto sempleice utilizzando un generatore lineare congruenziale (LCG)?
Grazie a tutti.
 

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,210
1,846
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Se esponi i dubbi e/o le difficoltà che incontri è più semplice aiutarti (e scriverti tutto l'esercizio non ti sarebbe d'aiuto).
 

MPG

Utente Attivo
544
4
é stato solo citato dal profma non l'ho capito sinceramente e come si utilizza con un programmino di esempio giusto per capire, ti ringrazio.
Post unito automaticamente:

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:

Andretti60

Utente Èlite
6,440
5,091
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.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili