不定方程式の解き方がたった15分で理解できて問題を解ける【数学IA】

みなさん、こんにちは。数学ⅠAのコーナーです。今回のテーマは【不定方程式】です。

 

たなかくん
たなかくん
そもそも不定方程式って何??どうやって解けばいいの?

 

結論から言うと、一次不定方程式とは、方程式の数よりも未知変数の数が多いような方程式のことです。(よくわからないですよね?)

 

そこで、今回は、まず不定方程式とはどのような式か定義を解説した上で一次不定方程式の解き方を解説します。最後に一次不定方程式についての練習問題もあるので、ぜひ問題を解いてみましょう。

 

きっと、この記事を読み終わったときには、一次不定方程式の問題が解けるようになっています。では、始めていきましょう。

この記事を15分で読んでできること・不定法方程式とは何かがわかる

・不定方程式の解き方がわかる

・自分で実際に不定方程式を解ける

そもそも不定方程式って何?

先程もいいましたが、不定方程式とは「無数に解のある方程式」のことです。

これまでは、x+3=5のようにxが1つに決まる式やx+y=5, x-y=-1のようにx・yがそれぞれ1つに決まる式を扱ってきました。しかし、今回の不定方程式では、x・yが1つに決まらず、その方程式を満たすx・yが無数に存在します

例えば、一次不定方程式x+2y-3=0を見ていきましょう。

この方程式の整数解としてx=1,y=1が挙げられます。ただし、この式は一次不定方程式なので、解はこれだけではありません。他にも(x,y)=(3,0),(5,-1),(7,-2)など無数に解が存在しているのです

一次不定方程式を解くってどういうこと?

無数に解が存在する一次不定方程式。では、一次不定方程式を解くとはどういうことなのでしょうか。

答えは、すべての解を表せる式を求めることです。

少しむずかしいですね。次の項で実際に問題を解きながら、理解を深めていきましょう。

一次不定方程式の解き方①方程式の整数解のうち1つがすぐに分かる場合

まず、一次不定方程式2x-3y-5=0を例に解き方を解説していきます。

まずはこの方程式の整数解を1つ探してみましょう。xまたはyに0や1など小さな数を代入すると、かんたんに方程式の整数解を見つけることができますね。今回はx=1,y=-1という整数解がすぐにわかるりました。

方程式の整数解が1つ見つかったので、いま分かっている式が2つになりましたね。1つはもちろん、2x-3y-5=0。もう1つは整数解x=1,y=-1を代入した、2・1-3・(-1)-5=0という式です。(「・」はかけるの意味です)

ここで次に何をするか分かった人はすばらしいです。もともとの式と代入した式を重ねてみましょう。

2x  -3y    -5=0
2・1 -3・(-1) -5=0

こうすると分かる人も多いのではないでしょうか。そうです、上の式から下の式を引きます。すると、2(x-1)-3(y+1)=0となります。これを移項すると、次の式ができあがります。

2(x-1)=3(y+1)

ここで注目したいのが「互いに素」という概念です。2つの整数の最大公約数が1であるとき、「互いに素である」といいます

今回、2と3は互いに素ですね。(※互いに素でない場合は約分しましょう。)そのため、x-1が3の倍数、y+1が2の倍数だと考えられます。(たまにひっかかる生徒もいるので解説しますが、2(x-1) = 3(y+1)という場合、2×(x−1)の一方の項は3×(y+1)なので、(x−1)は(y+1)が何かわからないとしても3がかかっているので必ず3の倍数になります。)

これを式にしてみると、x-1=3k, y+1=2kkは0以上の整数と数学的に定義します。自然数じゃないですよ)となります。すなわち、一次不定方程式2x-3y-5=0の整数解は、x=3k+1, y=2k-1(kは整数)です。

一次不定方程式を解くことがすべての解を表せる式を求めることだと理解できましたか?もう1問練習して、理解をさらに確かなものにしていきましょう。

一次不定方程式の解き方②方程式の整数解がなかなか分からない場合

さて、次は13x+5y=1を解いてみましょう。

先ほど、まずは方程式の整数解を1つ探すと解説しましたが、この方程式の整数解はなかなか思いつきません。ここで整数解を求めるために使うのが「ユークリッド互除法」というものです。ユークリッド互除法については「整数の性質を理解しよう!」で紹介しました。

ユークリッド互除法は、「aをbで割った余りをrとすると、aとbの最大公約数はbとrの最大公約数に等しい(a・bは自然数)」という性質を用いて、2つの自然数の最大公約数を求める手法です。

言葉で説明しても少しむずかしいので、実際に13と5の最大公約数を求めてみましょう。

13=5×2+3

13と5の最大公約数は5と3の最大公約数と同じなので…

5=3×1+2

3=2×1+1

3と2の最大公約数は2と1の最大公約数と同じなので「1」と求められました。さかのぼって考えると、13と5の最大公約数は「1」だと分かりますね。しかし、実はそれはまったく重要ではありません…。

どういうこと??と思っているかもしれませんが、とりあえず先に進んでいきましょう。なんでそうするの?という疑問は置いておいて、先ほどの式を変形してみます。

13=5×2+3 → 3=13-5×2(式①)
5=3×1+2  → 2=5-3×1(式②)
3=2×1+1  → 1=3-2×1(式③)

それでは、式③の「2」に式②を代入してみます。式を整理するときに、5と3を残しておくことに注意しましょう。

1=3-(5-3×1)×1=5×(-1)+3×2(途中の計算過程は下記の通り)

次は、この式に式①を代入します。このとき、13と5を残して整理しましょう。途中の計算式は以下のとおりです。

1=5×(-1)+(13-5×2)×2
=13×2+5×(-5)

さて、みなさんお気づきですか?なんと、はじめに示した一次不定方程式13x+5y=1の1つの整数解が見つかっています。そうなると、あとは簡単ですね。

2つの式を引き算して…

13(x-2)+5(y+5)=0

この一次不定方程式の整数解は、x=-5k+2, y=13k-5(kは整数)です。

ユークリッド互除法を用いて、1=〇-□×1の式を作り、□に1つ前の式を代入していくと、不定方程式の整数解を求められます。一次不定方程式の解き方、理解できたでしょうか?

練習問題で確認してみましょう。

【一次不定方程式の問題】

(1)2x+7y=3の整数解を求めよ。
(2)5x-3y=13の整数解を求めよ。
(3)17x+5y=1の整数解を求めよ。
(4)23x+5y=2の整数解を求めよ。

【ヒント】
方程式の整数解が見つからないときは、まず〇x+□y=1の解をユークリッド互除法をつかって求めてみましょう。

【問題の解答】

x=-2, y=1が1つの整数解ですので、2・(-2)+7・1=3という式ができます。
もとの式からこれを引くと、2(x+2)+7(y-1)=0となります。
よって、x+2=7k, y-1=-2k(kは整数)です。
すなわち、2x+7y=3の整数解は、x=7k-2, y=-2k+1(kは整数)です。
x=3k+5, y=5k+4(kは整数)
x=5k+3, y=-17k-10(kは整数)
x=5k-1, y=-23k+5(kは整数)

今回のまとめ

今回は、不定方程式について説明しました。ax+by+c=0の形で表される一次不定方程式は、入試でもよく出題されます。一度解き方を覚えてしまえば、かんたんに解くことができるため、繰り返し練習して理解を深めていきましょう。

不定方程式の問題をより詳しく勉強したい人は「ケプラーの八角星 不定方程式の整数解問題 (ブルーバックス)」を読んでみるといいでしょう。読み物としても楽しく読めますよお疲れさまでした。

コメント

");const o=ie?ie.createHTML(e):e;if(nt===tt)try{t=(new W).parseFromString(o,at)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(nt,"template",null);try{t.documentElement.innerHTML=ot?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),nt===tt?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},bt=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},St=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof z)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},Rt=function(e){return"function"==typeof b&&e instanceof b},wt=function(e,t,n){pe[e]&&u(pe[e],(e=>{e.call(o,t,n,ut)}))},Ct=function(e){let t=null;if(wt("beforeSanitizeElements",e,null),St(e))return _t(e),!0;const n=st(e.nodeName);if(wt("uponSanitizeElement",e,{tagName:n,allowedTags:Ne}),e.hasChildNodes()&&!Rt(e.firstElementChild)&&_(/<[/\w]/g,e.innerHTML)&&_(/<[/\w]/g,e.textContent))return _t(e),!0;if(e.nodeType===J)return _t(e),!0;if(Me&&e.nodeType===Q&&_(/<[/\w]/g,e.data))return _t(e),!0;if(!Ne[n]||Ce[n]){if(!Ce[n]&&Dt(n)){if(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ye&&!qe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,$(e))}}}return _t(e),!0}return e instanceof R&&!Et(e)?(_t(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!_(/<\/no(script|embed|frames)/i,e.innerHTML)?(ke&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),wt("afterSanitizeElements",e,null),!1):(_t(e),!0)},Lt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in mt))return!1;if(ve&&!Le[t]&&_(ge,t));else if(De&&_(Te,t));else if(!Se[t]||Le[t]){if(!(Dt(e)&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&_(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&_(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ze[t]);else if(_(Ae,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Ke[e]){if(Oe&&!_(ye,g(n,Ee,"")));else if(n)return!1}return!0},Dt=function(e){return"annotation-xml"!==e&&h(e,_e)},vt=function(e){wt("beforeSanitizeAttributes",e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Se};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=st(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,wt("uponSanitizeAttribute",e,n),p=n.attrValue,n.forceKeepAttr)continue;if(At(a,e),!n.keepAttr)continue;if(!xe&&_(/\/>/i,p)){At(a,e);continue}if(Me&&_(/((--!?|])>)|<\/(style|title)/i,p)){At(a,e);continue}ke&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=st(e.nodeName);if(Lt(f,s,p)){if(!We||"id"!==s&&"name"!==s||(At(a,e),p=Ge+p),ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),St(e)?_t(e):m(o.removed)}catch(e){}}}wt("afterSanitizeAttributes",e,null)},Ot=function e(t){let n=null;const o=bt(t);for(wt("beforeSanitizeShadowDOM",t,null);n=o.nextNode();)wt("uponSanitizeShadowNode",n,null),Ct(n)||(n.content instanceof s&&e(n.content),vt(n));wt("afterSanitizeShadowDOM",t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(ot=!e,ot&&(e="\x3c!--\x3e"),"string"!=typeof e&&!Rt(e)){if("function"!=typeof e.toString)throw A("toString is not a function");if("string"!=typeof(e=e.toString()))throw A("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||ft(t),o.removed=[],"string"==typeof e&&(je=!1),je){if(e.nodeName){const t=st(e.nodeName);if(!Ne[t]||Ce[t])throw A("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Nt("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Fe&&!ke&&!Ie&&-1===e.indexOf("<"))return ie&&ze?ie.createHTML(e):e;if(n=Nt(e),!n)return Fe?null:ze?ae:""}n&&Pe&&_t(n.firstChild);const c=bt(je?e:n);for(;i=c.nextNode();)Ct(i)||(i.content instanceof s&&Ot(i.content),vt(i));if(je)return e;if(Fe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Se.shadowroot||Se.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Ne["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&_(q,n.ownerDocument.doctype.name)&&(m="\n"+m),ke&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&ze?ie.createHTML(m):m},o.setConfig=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};ft(e),Ue=!0},o.clearConfig=function(){ut=null,Ue=!1},o.isValidAttribute=function(e,t,n){ut||ft({});const o=st(e),r=st(t);return Lt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&(pe[e]=pe[e]||[],p(pe[e],t))},o.removeHook=function(e){if(pe[e])return m(pe[e])},o.removeHooks=function(e){pe[e]&&(pe[e]=[])},o.removeAllHooks=function(){pe={}},o}();return oe}))
タイトルとURLをコピーしました