Euclidの拡張互除法とは?
- Euclidの拡張互除法は、互いに素な自然数A,Bに対して、Ax+By=1を満たす整数解(x,y)を求める方法です。
- また、Euclidの拡張互除法を使うと、無限に存在する整数解の中から最も簡単な解を求めることができます。
- 最も簡単な解とは、絶対値が一番小さい数の組み合わせや既約分数のようなイメージです。
- ベストアンサー
Euclidの拡張互除法
Euclidの拡張互除法 互いに素な自然数A,Bがあるとき、Ax+By=1を満たす整数(x,y)が存在しますね。 また、この式からAB-BA=0をn倍して辺々引くと A(x-nB)+B(y+nA)=1 が成り立つので (x-nB,y+nA)も、Ax+By=1の整数解であると言えます。 これ以外に、Ax+By=1を満たす整数解は存在することはありますか? それと、Euclidの拡張互除法で Ax+By=1を満たす整数(x,y)を求めることができますが 無限に存在する(x,y)の組のうち、求まるのは 最も簡単なもののような気がしますが、それは正しいですか? 「最も簡単」というのは適当な表現が見つからないのですが 絶対値が一番小さい数の組み合わせといいますか 既約分数のようなイメージです。
- sak_sak
- お礼率14% (194/1334)
- 数学・算数
- 回答数5
- ありがとう数2
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>これ以外に、Ax+By=1を満たす整数解は存在することはありますか? 質問の意図がわかりにくいが、一般解を求めておく。それで解決なんじゃないの? xとyの特別解の一つを(α、β)とする。 ax+by=1 ‥‥(1) aα+bβ=1 ‥‥(2) であるから (1)-(2)を作ると、a*(x-α)=b*(β-y)となる。 aとbは互いに素から、mを整数として x-α=bm、β-y=am 。 よって、(x、y)=(bm+α、β-am)。
その他の回答 (4)
- alice_44
- ベストアンサー率44% (2109/4759)
> 必要条件だけを辿っていることを > 回答者様の方で説明いただければ結構です。 普通のユークリッド互除法で ベズーの等式の係数が求まることは、 A No.2 で説明しましたが。
補足
特殊解を求める手順についてはわかるのですが 一般解を求める手順が必要条件だけを辿っていることは No.2の回答のどの辺りで説明していただいているのかわからないです。
- alice_44
- ベストアンサー率44% (2109/4759)
"拡張 互除法" でネット検索してみましたが、 出てくるのはプログラム関連のページばかりで、 数字のサイトを見かけません。 内容的にも、普通のユークリッド互除法について 書いてあるようです。 どこが「拡張」なのか、結局解りませんでした。 代数的な説明が必要であれば、 "べズー 互除法" で検索 してみることを勧めます。
補足
回答ありがとうございます。 サイトは結構ですので 必要条件だけを辿っていることを 回答者様の方で説明いただければ結構です。 >どこが「拡張」なのか、結局解りませんでした。 単に最大公約数を求めるのが互除法 そこから、Ax+By=1の形にするのが拡張互除法 ではないのでしょうか?
>Euclidの拡張互除法 についてだけ。「拡張ユークリッドの互除法」or「拡張ユークリッド互除法」で検索したほうがたくさんヒットします。 www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/ExEuclid.html 「拡張~」のプログラムは謎の方法で書かれていることがあるので、自分で書く場合は手計算でのやり方をそのままプログラムにするというもの一つの手です。
補足
回答ありがとうございます。 自分の目的を達するためのプログラムは一応できているのですが(もちろんエラーチェック等色々な点でお粗末だとは思います) 今はむしろプログラムより数学的な意味の理解や応用面を知りたいと思っています。 検索するとプログラムが出てくることが多く、また拡張互除法以外の解を知りたいので、なかなか目的のサイトが見つかりません。
- alice_44
- ベストアンサー率44% (2109/4759)
No.1 は、文字の使い方が質問文と違うだけで、 同じ方程式の一般解を求め、それが 質問者の解で全てであることを示していますよ。 必要条件をたどって変形したのだから、 他には解はありません。 質問文の x, y, n が、 No.1 では α, β, -m と 書かれています。 「拡張互除法」って、何でしょう? 普通に互除法で A,B の最大公約数を求める際、 A を B で割った余りが C[1]、 B を C[1] で割った余りが C[2]、 C[1] を C[2] で割った余りが C[3] …と続けていくと、出てくる C[ ] は、 どれも A と B の整数倍の和です。 そして、A と B が互いに素であれば、 どこかで余りが 1 になって終わります。 そこまでの C[ ] を、順次 jA+kB の形に メモしながら計算を進めれば、 余りが 1 になった時点で、1 = xA+yB が得られます。
補足
回答ありがとうございます。 必要条件をたどっているのかどうかがわからないのです。 例えば私が質問文に書いた方法のうち「n倍して」が抜けていたら、もちろん他に解が存在することになります。 そのような“抜け”が本当に無いのかがよくわからないのです。 回答後半についてですが、手順だけは理解できていると思います。 質問文の後半は考えた末やっと「0<|y|<A,0<|x|<Bを満たすx,yの組が必ず1組だけ存在し、拡張互除法ではそれを求めている」という言葉になりました。
関連するQ&A
- ユークリッドの互除法
二つの整数a,bの最大公約数dを、ユークリッドの互除法で求める方法は分かります。 そうして求めたdは、適当な数x,yを使い、d=ax+byで表せることも何とか分かります。 しかし、d=ax+byが与えられたとき、ユークリッドの互除法を使って、特殊解xとyをどうやって求めたらよいのかが分かりません。 これまでの書き込みを見ても理解ができませんでした。 どなたか分かりやすくお教えください。
- ベストアンサー
- 数学・算数
- ユークリッドの互除法
ユークリッドの互除法の処方でつまづいています。 どなたか教えて頂けませんか。 aとbは正の整数でb≦aの関係にある。 aとbの最大公約数gcd(a,b)。 この時gcd(a,b)=ax+byの解となる(x,y)のペアはいくついるのでしょうか? 直感ですと(x,y)は一つしか存在しないように感じるのですが、どうやって記述すればいいのでしょうか? よろしくお願いします。
- ベストアンサー
- 数学・算数
- 拡張ユークリッドの互除法のaとbは1組のみ?
例えば、下記URLを見ると、 http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/ExEuclid.html -- x, yを0でない自然数とし,c=GCD(x,y)とする。このとき, ax+by=c となる整数a,bが存在する。そして,この a,b は実際に計算することが出来る。 -- のように拡張ユークリッドの互除法が解説されていますが、この時、a,bの組は1組なのでしょうか?それとも複数ある(可能性がある)うちの1組を特定できる、ということなのでしょうか?
- ベストアンサー
- 数学・算数
- Euclidの互除法とAx+By=GCM(A,B)となるx,yのイメー
Euclidの互除法とAx+By=GCM(A,B)となるx,yのイメージ Euclidの互除法のイメージとして、 A×Bの長方形を、なるべく大きな正方形で埋めていくようなイメージで捉えていました。 すると最大公約数が求められるイメージはわかるのですが x,yがどういう数なのか今一つ掴めません (代数的にAx+By=GCM(A,B)の式が得られることは理解できています)。 私が思っているようなイメージでなくて結構ですので 互除法のイメージとx,yのイメージが両方掴めるようなモデルをご呈示ください。 また、Euclidの互除法の回数は、最大でも桁数の5倍だそうですが なぜ10進数表記の桁数、つまり常用対数に依存するのでしょうか? 正確な式は自然対数の2倍くらいだったりするのでしょうか。
- ベストアンサー
- 数学・算数
- ユークリッドの互除法についての問題です。
ユークリッドの互除法についての問題です。 a,bが任意の整数のとき、次の式を満たす整数xは必ずあるか。 (1)aが5の倍数でないとき ax≡b (mod5) (2)aが4の倍数でないとき ax≡b (mod4) 誰か教えてください。
- ベストアンサー
- 数学・算数
- 数学のユークリッド互除法についてです。
数学のユークリッド互除法についてです。 [4201x-3859y=1の1組の非負整数解を求めよ]の解答と解法を教えて下さい。 何度計算しても負の値になってしまいます。 よろしくお願いします。
- 締切済み
- 大学・短大
- ユークリッドの互除法の証明
ユークリッドの互除法なんですが、これを使った証明がわからないので質問させてください。 a,bは正の整数で、b≦aである。 r_0=a、r_1=bとしq_iとr_iは整数で0<r_i<r_(i-1)である。(qについては特に指示はありません) このとき r_0=r_1*q_1+r_2 r_1=r_2*q_2+r_3 ・ ・ ・と続き r_(n-2)=r_(n-1)*q_(n-1)+r_n r_(n-1)=r_n*q_n が成り立つ。 n≧2の時、ユークリッドの互除法はgcd(a,b)=ax+byとなる整数(x,y)を持つことを証明しなさい。 これは帰納法を使えばいいのでしょうか? n=2の時にr_2=r_0-r_1*q_1が成り立つことはr_(n-1)=r_n*q_n にn=2を代入して示せるのですがn=k、n=k+1の時にどうすればうまく証明できるのかわかりません。 どなたか教えて下さい。
- ベストアンサー
- 数学・算数
- 拡張ユークリッドについて
ax+by=gcd(a,b)でx, yを求める際にa, bのどちらかがもしマイナスの場合成り立つのでしょうか?サイトによっては正の整数と書いてるサイトもあれば,整数と書いてるサイトもあるので・・・・ウィキは嘘ばかり書いてることが多いと聞いたことがるのでどうも信用できません... 実際のところ成り立つのでしょうか?
- 締切済み
- 数学・算数
お礼
補足の補足です 「aとbは互いに素」以降が自分はわかっていないようです。 互いに素だと、何故そのように書けるのでしょうか?
補足
回答ありがとうございます。 解いていただいた一般解以外にも解があるかどうかなんですが この回答からでは、他に解が無いことがよくわかりません。