4. Simulări și rezultate

Validarea implementării

Suita de validare confirmă că motorul rapid coincide cu DFT-ul direct (eroare 1013\sim 10^{-13}) pentru lungimi de la n=2n=2 la n=1000n=1000, inclusiv ne-puteri ale lui 2 (calea Bluestein).

Pe exemplul din NIST SP 800-22 §2.6.8 (100 de biți), implementarea produce:

N1=48,N0=47.5,d=0.458831,p=0.646355,N_1 = 48,\quad N_0 = 47.5,\quad d = 0.458831,\quad p = 0.646355,

identic cu codul de referință NIST (compilat separat). Documentația raportează N1=46N_1 = 46; vezi controverse.

Comportamentul spectral: aleator vs periodic

Spectru aleator vs periodic

La stânga, o secvență aleatoare are spectru relativ plat, cu 5%\approx 5\% vârfuri peste prag. La dreapta, o secvență periodică concentrează energie la armonice. Încearcă în runner: tiparul 0001 sau „numai 1” dau p0p \approx 0 (respinse). O subtilitate: o secvență de perioadă 2 (0101...) are vârful pe componenta Nyquist (exclusă), dar este totuși respinsă - indirect: toate componentele numărate rămân nule, deci N1N_1 atinge maximul și dd devine puternic pozitiv.

Rularea pe fișierele de date NIST

Pe toate secvențele pe care NIST și-a validat suita (100 fluxuri × 10000 biți):

| Fișier | Proporție | Uniformitate p | Verdict | | --- | --- | --- | --- | | data.e | 99/100 | 0.000233 | PASS | | data.pi | 100/100 | 0.162606 | PASS | | data.sqrt2 | 100/100 | 0.048716 | PASS | | data.sqrt3 | 100/100 | 0.003996 | PASS | | data.sha1 | 100/100 | 0.455937 | PASS |

Toate trec; data.e are uniformitatea la limită. Explorează interactiv în Secvențe NIST.

Simulare Monte-Carlo sub H0

Distributia N1 si p sub H0

Pe 10610^6 secvențe aleatoare de n=4096n = 4096 (generator PCG64, nu rand()): deviația standard empirică a lui N1N_1 este σemp7.17\sigma_{\text{emp}} \approx 7.17, iar cea presupusă de NIST este σNIST6.97\sigma_{\text{NIST}} \approx 6.97 (raport 1.03\approx 1.03, deci Var(d)1.056\operatorname{Var}(d) \approx 1.056 în loc de 11). Rata empirică de respingere sub H0H_0 este 0.012\approx 0.012, peste valoarea nominală 0.010.01: testul respinge generatoare bune ceva mai des decât ar trebui. Valoarea 1.0561.056 se potrivește cu 4/3.81.054/3.8 \approx 1.05 prezisă de constanta corectată a lui Pareschi - vezi controverse.