アルゴリズムC3巻(Rセイウィックの)の
乱数のとこのp113以降の
pq = 10^8p1q1として〜のところからよくわからないんですが
誰か説明してくれないでしょうか?
式変形はわかるんですが、そのあとのプログラム実装で
return (((p0*q1+p1*q0) % m1) * m1) + p0*q0) % m;
ってとこの意味がよくわかりません.
結局これはp * qのビットあふれを生じさせないように
値を返すってことらしいですがなんでこれでうまくいく(?)んでしょうか?