キャリー付き乗算
x n = ( a x n − r + c n − 1 ) mod b , c n = ⌊ a x n − r + c n − 1 b ⌋ , {\displaystyle x_{n}=(ax_{n-r}+c_{n-1}){\bmod {\,}}b\,,\ \ c_{n}=\left\lfloor {\frac {ax_{n-r}+c_{n-1}}{b}}\right\rfloor ,}
は、逆順にすると、ある 0 < j < ab において j/(ab − 1) の基数 b での小数部と一致する。
さらに、合同数列を
x n = 7 x n − 1 mod 69 {\displaystyle x_{n}=7x_{n-1}\,{\bmod {\,}}69}
で定義した場合、 x 0 = 34 {\displaystyle x_{0}=34} から始めると以下の周期22の数列を得るが、
31 , 10 , 1 , 7 , 49 , 67 , 55 , 40 , 4 , 28 , 58 , 61 , 13 , 22 , 16 , 43 , 25 , 37 , 52 , 19 , 64 , 34 , 31 , 10 , 1 , 7 , ... {\displaystyle 31,10,1,7,49,67,55,40,4,28,58,61,13,22,16,43,25,37,52,19,64,34,\,31,10,1,7,\ldots }
これを10で割った余りを求めると
で定義される xn, cn のペアの数列であり、MWC 生成器の出力は以下の x の列となる。
xr , xr+1 , xr+2, ...
lag-r MWC 生成器の周期は ab − 1 を法とする数の乗法群における b の位数である。通例、a は b の位数を大きくできるよう、p = ab − 1 が素数になるように選ぶ。b = 2 は p = ab − 1 の原始根とはならないので、b = 2 を基数とした MWC 生成器の周期は、MWC の最大周期 p = ab − 2 になることはない。これが、b = 2 − 1 の方が有利になる点の1つである。
Couture と l'Ecuyer (1997) により、MWC 生成器には最上位ビットが少し偏っているという理論的な問題があると指摘された。ただし、この問題は相補的キャリー付き乗算により解決されている。「相補的 MWC を使えば、最上位ビットは均一に出ることが分かるだろう。つまり、全周期中で0と1とが同等の頻度で現れ、その傾向も MWC 生成器間に関連性はない。」彼らはビットの偏り具合についてそれ以上詳しくは語っていないようである。相補的 MWC 生成器は計算時間が若干増えるため、実装の要求によってどちらを使うか決めるといいだろう。