キャリー付き乗算
MWC 列は b を法とする剰余からなる。b = 2 とするのが普通だが、これはコンピュータで扱う整数が通常そのようになっているからである。ただ、b = 2 − 1とすることもある。これは、2 − 1 を法とする演算は 2 を法とする演算を少し変更するだけで済み、さらに、b = 2 の MWC の理論にはいくつか厄介な問題があるが、b = 2 − 1 ではそれを回避できるからである。
その最も一般的な形では、lag-r MWC 生成器は基数 b、乗数 a、そして r + 1 個の乱数種を必要とする。乱数種は r 個の b の剰余
x0, x1, x2 ,..., xr−1
と最初のキャリー cr−1 < a である。
そして、lag-r MWC 列は
x n = ( a x n − r + c n − 1 ) mod b , c n = ⌊ a x n − r + c n − 1 b ⌋ , n ≥ r {\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 ,\ n\geq r}
キャリー付き乗算 (キャリーつきじょうさん、英: multiply-with-carry, MWC) は、George Marsagliaにより開発された整数疑似乱数生成用の手法である。乱数種には2〜数千の値を必要とする。MWC の主な長所は、単純な整数演算からなっており非常に高速に動作するという点と、2 - 2 という非常に長周期であるという点である。