LCG

Linear Congruential Generator


Osserva: xn=(axn-1+c) mod m

  1. Il prodotto per a (1001) produce un numero con più cifre ma con le cifre più significative e le cifre meno significative piuttosto prevedibili
  2. Il contributo di c (337) permette di mescolare le cifre meno significative
  3. L’operazione finale di modulo m (1000000) scarta le cifre più significative

Si ottiene il massimo periodo (m) se

  1. c e m sono primi tra loro
    c (337) non ha divisori in comune con m (1000000)
  2. Se p è un fattore primo di m deve esserlo anche di a-1
    2 e 5 sono i fattori primi di m (1000000) e sono anche fattori primi di a-1 (1000)
  3. Se 4 divide m allora deve dividere anche a-1
    4 divide m (1000000) e divide anche a-1 (1000)

Esempi

mp|m4|ma (1 … m-1)c (1 … m-1)
402 5420n+1
1 21
1 3 7 9 11 13 17 19 21 23 27 29 31 33 37 39
902 3 5 30n+1
1 31 61
1 7 11 13 17 19 23 29 31 37
41 43 47 49 53 59 61 67 71 73 77 79 83 89
1002 5420n+1
1 21 41 61 81
1 3 7 9 11 13 17 19 21 23 27 29 31 33 37 39
41 43 47 49 51 53 57 59 61 63 67 69 71 73 77 79
81 83 87 89 91 93 97 99
12111 11n+1
1 12 23 34
45 56 67 78
89 100 111
1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20
21 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40
41 42 43 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60
61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 78 79 80
81 82 83 84 85 86 87 89 90 91 92 93 94 95 96 97 98 100
101 102 103 104 105 106 107 108 109
111 112 113 114 115 116 117 118 119 120
128244n+1
1 5 9 13 17 21 25 29 33 37
41 45 49 53 57 61 65 69 73 77
81 85 89 93 97 101 105 109 113 117
121 125
1 3 5 7 9 11 13 15 17 19
21 23 25 27 29 31 33 35 37 39
41 43 45 47 49 51 53 55 57 59
61 63 65 67 69 71 73 75 77 79
81 83 85 87 89 91 93 95 97 99
101 103 105 107 109 111 113 115 117 119
121 123 125 127

Prova

a
c
m
seme
n