モジュラ逆数(逆元)計算機

整数 a と法 m におけるモジュラ逆数(逆元)をオンラインで即座に計算。拡張ユークリッドの互除法を用いた詳細な計算手順、最大公約数 gcd(a, m) の判定、ベズーの等式まで分かりやすく解説します。

835.0K 利用回数 更新日 · 2026-04-30 ブラウザ内で処理 · アップロードなし
AD

モジュラ逆数(逆元)計算ツールの使い方

本ツールは、整数 $a$ と法(モジュラス)$m$ を入力するだけで、剰余類環におけるモジュラ逆数(逆元)の計算を自動で行うオンライン計算ツールです。

  1. 数値の入力: 「整数 $a$」と「法 $m$($m > 1$)」を入力します。
  2. 自動リダクション: 入力された $a$ は、まず $a \pmod m$ に変換(余りの計算)されます。
  3. 最大公約数と存在判定: $a$ と $m$ の最大公約数 $\gcd(a, m)$ を計算し、逆元が存在するかどうかを判定します。
  4. 結果と計算ステップの表示: $\gcd(a, m) = 1$ の場合、最小の非負整数であるモジュラ逆数 $x$ を出力するとともに、拡張ユークリッドの互除法による途中経過(商と余りの連立方程式、ベズーの等式)をステップ順に表示します。

計算公式と理論 — モジュラ逆数と拡張ユークリッドの互除法

モジュラ逆数(逆元)とは、以下の合同方程式を満たす整数 $x$ のことです。

$$a \times x \equiv 1 \pmod m$$

逆元の存在条件

モジュラ逆数が存在するための必要十分条件は、整数 $a$ と法 $m$ が**互いに素($\gcd(a, m) = 1$)**であることです。$\gcd(a, m) > 1$ の場合、$a \times x \equiv 1 \pmod m$ を満たす整数 $x$ は存在しません。

拡張ユークリッドの互除法による解法

合同式 $a \times x \equiv 1 \pmod m$ は、ある整数 $y$ を用いて一次不定方程式(ベズーの等式)に書き換えることができます。

$$a \cdot x + m \cdot y = 1$$

この方程式の整数解 $(x, y)$ は、拡張ユークリッドの互除法(Extended Euclidean Algorithm)を用いることで効率的に求めることができます。得られた解 $x$ に対して $x \pmod m$ を計算(負の値の場合は $m$ を加算)することで、範囲 $0 \le x < m$ に含まれるモジュラ逆数が求まります。

また、法 $m$ が素数の場合はフェルマーの小定理($a^{m-1} \equiv 1 \pmod m$)を利用して $a^{m-2} \pmod m$ を計算することでも逆元を求められますが、拡張ユークリッドの互除法は $m$ が素数でない場合でも $\gcd(a, m) = 1$ であれば適用できる汎用的な手法です。

モジュラ逆数計算機の活用シーン

  • 競技プログラミング・アルゴリズム学習: C++ や Python での modinv 関数実装の動作確認や、MOD 演算を伴う組合せ計算($n\mathrm{C}_r \pmod{10^9+7}$ など)の検証。
  • 暗号理論・情報セキュリティ: RSA 暗号や楕円曲線暗号(ECC)における秘密鍵生成や解読アルゴリズムの計算検証。
  • 数論・代数学の学習: 大学や高校数学における「合同式」「一次不定方程式」「ユークリッドの互除法」の具体的な計算プロセスの理解。

ブラウザ上で即座に結果と途中式が確認できるため、試験対策やプログラミングのデバッグにぜひご活用ください。

モジュラ逆数(逆元)計算機についてのよくある質問

モジュラ逆数(逆元)計算機は何を求めるツールですか?

整数 a と法 m に対して、合同方程式 a × x ≡ 1 (mod m) を満たす最小の非負整数 x(モジュラ逆元)を計算・導出するツールです。

モジュラ逆数(逆元)が存在する条件は何ですか?

整数 a と法 m が互いに素であること、すなわち最大公約数 gcd(a, m) = 1 であることが逆元が存在する必要十分条件です。

どのようなアルゴリズムで逆元を計算していますか?

拡張ユークリッドの互除法を用いて、ベズーの等式 ax + my = 1 を満たす整数解 (x, y) を求めるアルゴリズムを採用しています。

入力したデータはサーバーに送信・保存されますか?

いいえ。すべての計算はユーザーのブラウザ内で完結するため、入力データがサーバーに送信されたり保存されたりすることはありません。