I am looking to implement a linear congruential generator in Excel.
As we now, we must choose the paramater of LCG is a, c, m, and Z0.
In Wikipedia says, The period of a general LCG is at most m, and for some choices of factor a much less than that. The LCG will have a full period for all seed values if and only if:
m and the offset c are relatively prime,
a - 1 is divisible by all prime factors of m,
a - 1 is divisible by 4 if m is divisible by 4.
Also,
m, 0 < m – the "modulus"
a, 0 < a < m – the "multiplier"
c, 0 < c < m – the "increment"
Z0, 0 < Z0 < m – the "seed" or "start value"
I need to choose those values, I want Z0 initial value is 10113383, and the rest is random. Nah, what values that has a specified period and guaranteed no collisions for the duration of that period?
I've tried to put some values, a=13, c=911, m=11584577 and it looks no collisions. But I'm not sure if I break the rules or not.
Aucun commentaire:
Enregistrer un commentaire