Zₘ
合同式・mod逆元計算機
カテゴリー区分

合同式・mod逆元計算機

合同方程式やモジュロ逆元、べき乗剰余を瞬時に算出する合同式計算ツール。拡張ユークリッド互除法のステップ解説や時計演算の可視化にも対応しています。

プリセット
標準剰余
進数表記
合成数互いに素
条件シミュレーション

目標値の説明

計算結果
5
0 ≤ r < m
商と余りの関係式
6
a = q·m + r
最大公約数(GCD)
1
互いに素です(GCD = 1)
モジュラ逆数の計算結果
19
a · a⁻¹ ≡ 1 mod m
除法等式の検証
19=(6)×24+5
拡張ユークリッド互除法(EEA)計算表gcd = 1
ステップ被除数除数商剰余ベズー係数 sベズー係数 t
124191510
219534-11
354114-3
44140-54
ベズーの等式
19 × (-5) + 24 × (4) = 1
モジュラ逆数の関係式 19⁻¹ ≡ 19 (mod 24)
LaTeX形式出力
19 + 130 \equiv 5 \pmod{24}
最大公約数(GCD)
互いに素(gcd = 1)

基数と法が互いに素(最大公約数が 1)である場合にモジュロ乗法逆元が存在します。

モジュロ逆元
逆元が存在

合同式 a · x ≡ 1 (mod m) を満たす一意の乗法逆数です。

オイラーのφ関数
既約剰余類の総数

法 m と互いに素な 1 以上 m 以下の整数の個数(群の位数)です。

技術リファレンス・アーキテクチャガイド

モジュロ逆元・剰余計算ガイド — 技術リファレンス

合同方程式、モジュロ乗法逆元、べき乗剰余、合同式の計算に対応した高精度モジュロ計算機。拡張ユークリッドの互除法によるステップ別計算過程や時計演算のビジュアル表示も網羅しています。

モジュロ逆元・剰余計算ガイド — 技術リファレンス — クライアントサイド完全ローカル実行アーキテクチャ図
モジュロ逆元・剰余計算ガイド — 技術リファレンス — クライアントサイド完全ローカル実行アーキテクチャ図

主要パラメータと設定項目

被除数 / 底 (a)任意精度整数(BigInt)

除算またはべき乗の対象となる基本整数オペランド。正の数・負の数・ゼロのいずれも指定可能で、BigInt仕様により64ビットIEEE 754浮動小数点数の丸め誤差を伴わず正確に処理されます。

初期値: 42
法 / モジュラス (m)正の整数(BigInt)

剰余環(ℤ/mℤ)を決定する正の整数除数。1以上の整数である必要があり、m ≧ 2 で可換環を形成し、mが素数の場合は有限体(ガロア体 GF(p))を構成します。

初期値: 2017
標準剰余 / 余り (r)剰余整数(0 ≦ r < m)

数学的なユークリッド除法において、a = q × m + r かつ 0 ≦ r < m を満たす唯一に決定される非負の余り(剰余)。

初期値: 1
モジュロ乗法逆元 (a⁻¹ mod m)合同解類

(a × x) ≡ 1 (mod m) を満たす整数 x。a と m が互いに素(最大公約数 gcd(a, m) = 1)の場合にのみ存在し、拡張ユークリッドの互除法によって算出されます。

初期値: 816
オイラーのトーシェント関数 φ(m)環の不変量整数

1からmまでの整数のうち、mと互いに素である自然数の個数。モジュロ演算において、gcd(a, m) = 1 を満たすすべてのaに対して a^φ(m) ≡ 1 (mod m) が成立します(オイラーの定理)。

初期値: 2016

現場のベストプラクティス・実践Tips

プログラミング言語間で異なる負の数の剰余演算仕様

C言語、C++、JavaScriptにおける % 演算子は、被除数の符号を保持するゼロ方向切り捨ての「剰余演算子」です(例: -7 % 5 = -2)。一方、離散数学やPythonでは床関数に基づくユークリッド除法が採用され、常に 0 ≦ r < m となります(例: -7 mod 5 = 3)。JavaScript等の開発で数学的に正しい非負の剰余を得るには、必ず ((n % m) + m) % m で正規化してください。

モジュロ除算には通常の割り算ではなく「互いに素」が必要

モジュロ演算の世界では、通常の算術のように単に a / b mod m を計算することはできません。モジュロ除算 (a / b) mod m は乗法逆元を用いた (a × b⁻¹) mod m として定義され、gcd(b, m) = 1(互いに素)のときに限り成立します。gcd(b, m) > 1 の場合は、通常計算で割り切れる数値であってもモジュロ除算は未定義(解なし)となります。

繰り返し二乗法による壊滅的なメモリオーバーフローの回避

(a^b) mod m を計算する際、先に a^b を求めてから mod を適用してはいけません。3^1000 程度の中規模な指数でも数百桁に達し、スタックメモリが枯渇します。常にバイナリ法(繰り返し二乗法)を用い、二乗および乗算の各中間ステップごとに法 m による剰余縮小を行うことで、数値を常に m² 未満に抑えて計算してください。

一次合同方程式における複数解の導出法則

一次合同式 a × x ≡ b (mod m) を解く際、d = gcd(a, m) > 1 かつ d が b を割り切るならば、解は1つだけではなく、mod m において互いに合同でない解がちょうど d 個存在します。これらの各解は正確に m / d の等間隔で分布します。

よくある落とし穴とトラブルシューティング

⚠️モジュロ逆元が存在しない(エラー: gcd(a, m) ≠ 1)

被除数 a と法 m の最大公約数(gcd)を確認してください。モジュロ乗法逆元 a⁻¹ mod m は gcd(a, m) = 1(互いに素)のときにのみ存在します。gcd(a, m) = d > 1 である場合、a と m は共通の素因数を持つため、いかなる整数 x に対しても a × x は常に d の倍数となり、mod m において 1 になることは原理的にあり得ません。

⚠️負の数の剰余演算で不一致が生じる(-7 mod 5 が 3 ではなく -2 になる)

計算モードの選択を「プログラミング仕様(切り捨て除算)」から「数学仕様(非負剰余)」に切り替えてください。コンピュータ言語は商をゼロ方向に切り捨てるため負の余りが発生しますが、離散数学では 0 ≦ r < m が必須です。本計算機の数学モードでは ((n % m) + m) % m を自動適用し、正しい剰余を導出します。

⚠️法(モジュラス)は1以上の正の整数である必要があります

ゼロ除算および mod 0 は、a = q × 0 + r を満たす一意の商 q が存在しないため数学的に未定義です。法 m には必ず 1 以上の整数(自明でない剰余環を形成する場合は 2 以上の整数)を指定してください。

⚠️中国の剰余定理(CRT)の連立合同式に解が存在しない

中国の剰余定理(CRT)は、すべての法 m₁, m₂, ..., mₖ が互いに素(すべての i ≠ j に対して gcd(mᵢ, mⱼ) = 1)であることを前提条件とします。法同士に共通因数が含まれる場合は、拡張CRT(一般化CRT)を用いて合同式同士が矛盾していないか整合性を検証してください。条件を満たさない場合、共通整数解は存在しません。

よくある質問 (FAQ)

負の数のモジュロ(剰余)はどのように計算しますか?▼

負の数の数学的モジュロ n mod m を計算するには、ユークリッド除法の公式 r = ((n % m) + m) % m を使用します。例えば -17 mod 5 の場合、-17 を 5 で割ると商が -4、余りが 3 となります(-4 × 5 + 3 = -17 が成立するため)。C++ や JavaScript ではゼロ方向切り捨てにより -2 が返されますが、離散数学における剰余は厳密に非負(0 ≦ r < m)として定義されます。

モジュロ乗法逆元とは何ですか?どのような場合に存在しますか?▼

整数 a の法 m におけるモジュロ乗法逆元とは、(a × x) ≡ 1 (mod m) を満たす整数 x のことです。この逆元は a と m が互いに素(最大公約数 gcd(a, m) = 1)である場合に限り存在します。互いに素である場合、拡張ユークリッドの互除法によって a × x + m × y = 1 を満たす整数 x, y が算出され、その係数 x を mod m で剰余縮小した値が一意の逆元となります。

モジュロ演算子(modulo)と剰余演算子(remainder)の違いは何ですか?▼

最大の違いは整数除算における丸め処理の方向にあります。剰余演算子(C言語、C++、JavaScriptの % など)は商をゼロ方向へ切り捨てる(trunc(a / m))ため、被除数が負のときに余りも負数になります。一方、数学的なモジュロ演算子は商を負の無限大方向へ切り捨てる床関数(floor(a / m))を採用しており、余りは常に非負となり 0 ≦ r < m の範囲に収まります。

一次合同方程式はどのように段階的に解きますか?▼

一次合同式 a × x ≡ b (mod m) を解く手順は次の通りです。まず最大公約数 d = gcd(a, m) を計算します。d が b を割り切れない場合、解は存在しません。d が b を割り切れる場合、式全体を d で割って (a/d) × x ≡ (b/d) (mod m/d) に簡約します。次に拡張ユークリッドの互除法を用いてモジュロ逆元 k = (a/d)⁻¹ mod (m/d) を求めます。基本解は x₀ = (k × (b/d)) mod (m/d) となり、mod m における互いに異なる d 個の全解は xᵢ = x₀ + i × (m / d)(i = 0, 1, ..., d - 1)によって求められます。

関連開発者ツール

全ツール一覧 →
設備総合効率(OEE)計算ユーティリティ

設備総合効率(OEE)を瞬時に算出。時間稼働率・性能稼働率・良品率を可視化し、6大ロス分析やスループット改善シミュレーションを完全ブラウザ上で実行します。

ツールを開く→
床下防湿シート必要量計算ユーティリティ

床下の防湿シート施工面積(㎡・坪)、必要ロール数、継手テープ、基礎ブチル、束柱被覆材を自動算出。住宅建築規格(IRC R408.3)適合チェック、ロール最適化、資材コスト試算に対応。

ツールを開く→
油圧シリンダー推力・選定計算engineering

油圧シリンダーの押出・引込推力、ピストン環状断面積、伸縮速度、サイクルタイム、ポンプ必要動力、オイラー座屈限界荷重をリアルタイムに計算します。

ツールを開く→
SaaSマジックナンバー・CAC計算finance

エンタープライズ水準のSaaSマジックナンバー、CAC回収期間、営業投資効率を精密に算出するシミュレーター。売上総利益率(粗利率)調整、S&M費用のタイムラグ考慮、目標達成に向けた逆算シミュレーション、Scale Venture PartnersおよびBessemer基準の感応度分析マトリクスに対応。

ツールを開く→
Vベルト長さ・軸間距離計算engineering

Vベルトのピッチ長(有効長)、内周・外周長、軸間距離、プーリー接触角を高精度に計算。ISO・RMA規格の標準カタログサイズ(呼び番号)への自動スナップ・選定に対応しています。

ツールを開く→
ワイヤロープ張力・玉掛け計算ユーティリティ

ワイヤロープ張力、クレーンの掛数(リービング)効率、玉掛けスリングのベクトル分力、ウインチ滑車(スナッチブロック)荷重、支線(ガイワイヤ)のカテナリー弛度・張力を精密計算。ASME B30.5、ASME B30.9、OSHA 1926.1414、EN 12385規格に準拠し、曲げ径比(D/d比)低減や安全率からの径逆算に対応する専門工学ツールです。

ツールを開く→