(a/b) mod m
どこでa
とb
が非常に大きいかを計算する必要があります。
私がやろうとしているのは、 を計算する(a mod m) * (x mod m)
ことです。x
b
拡張ユークリッド アルゴリズムを使用してみましたが、b と m が互いに素でない場合はどうすればよいですか? b と m が互いに素である必要があることが特に言及されています。
コードhereを使用してみましたが、たとえば
3 * x mod 12
、 の値に対して はまったく不可能でありx
、存在しないことに気付きました!
私は何をすべきか?アルゴリズムを何らかの方法で変更できますか?