http://goo.gl/MFRFj 130107 初版 141104 更新
トップページ

整数 5

ディオファントス1次不定方程式

a, b, cを整数とするとき,
1次不定方程式 ax+by=c の 整数解 (x,y) を求めてみよう。

ここでは理論を記す。
互除法を用いた構成的な解法は こちら
例題とその解法は こちら (互除法はなるべく使わない)
ざっくりとした機械的な計算方法は こちら (逆行表と呼ぶ人がいる 互除法の拡張)
スクリプトによる自動計算は こちら (ディオファントス計算器)

以下, この頁では断りのない限り文字は整数である。

このあたりは二千年の伝統のある分野である。
理論はとうにできている。
高校の教科書にあるのは,本来理論を 構築する こと自体が目的だから,
以下を安易にみてはいけない。

a, b が 1より大きい公約数 d をもつとすると,
ax+by は d の倍数である。
ところが, d の倍数 任意の c に対して,
ax+by=c が解をもつかどうかは,問題である。
ax+by=d が解をもってしまえば, kx, ky は ax+by=kd の解だから,
ax+by=d が解をもつかどうかが問題である。
特に,
a, b が 互いに素であるとき,
ax+by=1 は解をもつ。
初級者には次の証明は少し理解しがたい。
存在を示す証明はしばしば理解しがたい。
こちらでは 構成的な証明をしてみるが, 数列(逐次)の考えが必要である。
合同式を使うが,それが難しい根本原因ではない。
ax+by=1 を満たす整数解を求めることは,
合同式 ax ≡ 1 (mod b) を満たす x を求めることである。
整数を b を法として分類すると,
0, 1, 2, 3,… b-1 の b 通りがあるが,
x はこのうちの 0 を除いた b-1 個のうちのどれかである。
また,ax を b で割った余りも
0, 1, 2, 3,… b-1 の b 通りがあるが,
ax はこのうちの 0 を除いた b-1 個のうちのどれかである。 (a と b は互いに素だから)
いま,x から ax への対応は1対1であることを示そう。
\(ax_1\equiv ax_2\) (mod b) ⇔ \(a(x_1-x_2)\) は b の倍数 である
a, b は互いに素だから,\(x_1-x_2\) は b の倍数である。
数の合同の定義によって,\(x_1 \equiv x_2\) (mod b)
対偶をとって,
\(x_1\not\equiv x_2\) ⇔ \(ax_1\not\equiv ax_2\) (mod b)
したがって,x から ax への対応は1対1であることがいえたので,
x が 1 から b-1 までの b-1 個あるならば, ax も 1 から b-1 までのちょうど b-1 個ある。 (鳩の巣原理)
よって,ax ≡ 1 (mod b) を満たす x は存在する。

32x-15y=1を満たす (x,y) を求める。
これは, 32x ≡ 1 (mod 15) を満たす x を求めること同じであり,さらに,
32 を 15 で割った余りは 2 だから,
2x ≡ 1 (mod 15) を満たす x を求めることと同値である。
x 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
2x (mod 15) 0 2 4 6 8 10 12 14 1 3 5 7 9 11 13
よって(探してみたら),x = 8 が解である。
このとき,32 × 8 - 15y = 1 を解いて,y=17
一般解は整数 k を用いて,
x = 8 + 15k,  y=17 + 32k