- 拡張ユークリッドの互除法を使用する方法: 拡張ユークリッドの互除法は、2つの整数の最大公約数と、それらの整数に関連する係数を見つける手法です。以下は、この方法を使用してモジュラ逆数を計算するPythonのコード例です。
def extended_gcd(a, b):
if a == 0:
return (b, 0, 1)
else:
gcd, x, y = extended_gcd(b % a, a)
return (gcd, y - (b // a) * x, x)
def mod_inverse(a, m):
gcd, x, _ = extended_gcd(a, m)
if gcd != 1:
raise ValueError("Inverse does not exist.")
else:
return x % m
# テスト
a = 7
m = 26
mod_inv = mod_inverse(a, m)
print(f"The modular inverse of {a} (mod {m}) is: {mod_inv}")
- pow()関数を使用する方法: Pythonのpow()関数は、指定された基数と指数に基づいてべき乗を計算します。これを使用してモジュラ逆数を計算することもできます。以下は、この方法を使用してモジュラ逆数を計算するPythonのコード例です。
def mod_inverse(a, m):
mod_inv = pow(a, -1, m)
if mod_inv == 0:
raise ValueError("Inverse does not exist.")
else:
return mod_inv
# テスト
a = 7
m = 26
mod_inv = mod_inverse(a, m)
print(f"The modular inverse of {a} (mod {m}) is: {mod_inv}")
これらは、Pythonでモジュラ逆数を計算するための一般的な方法のいくつかです。他にもさまざまな手法が存在しますが、上記の方法を参考にしてください。