つるかめ?GCD?

前回で、唐突に始めていたGMAT(ビジネススクールに入るための共通試験)のサンプル問題を見るシリーズを終えていましたが、一つ、せっかくだからもうちょい補足しておこうかな、と思えるご質問をいただいていました。

それが、↓の記事で見ていた、例の「シャツと帽子を決まった金額まで買う」問題についてで……

con-cats.hatenablog.com

コメント・ご質問は毎度おなじみアンさんよりいただいていました。


若干数学っぽい話で、英語以上につまんない話になる可能性も高いのですが、せっかくなので少し補足として触れさせてもらおうかと思います。

(この期に及んで、またちょっと記事の水増的な感じですね(笑))


実際ちょっと補足しておきたいなと思っていた点でもあり、コメント自体は大変ナイスで面白いものでした。

毎度非常にご丁寧なコメント、大変感謝の限りです!!

 

おぉ、、これは、連立方程式じゃあないですか!!(そう書いてありますが笑)

まぁ、今更この感じは、やっぱり嫌悪感ありますよね。

とりあえず、数えて正解したのでもういいかなと笑

解説を読んだら理解は出来るんですけど、この式を自分で出すのは無理ですね。

数えて出した答えの1つ、N=8とM=4を使わないといけないってことですよね?(既に出した答えを入れないと式が出来ない仕組みがわかりません。『上の式(N×22 + M×26 = 280)から下の式(8×22 +4×26 =280)を引き算する』という、考え方、なぜそうするのか?もわかりません。引き算をすればそうなるというのはわかります。)

小学校の時に、鶴亀算はめちゃくちゃ得意でしたけど…その応用でしょうか?

正直、連立方程式はほとんど覚えていませんが、鶴亀算はなんとなくわかります。


『11と13は互いに素なので、「11 × (13の倍数)」と「13 × (11の倍数)」という形じゃないと、絶っっ対に同じ数になることが不可能…』

↑これも、言われたらわかりますが、そこから式を出すのは無理ですね。

ということで、やっぱり数えるしかなさそうです笑


わざわざ考える必要はないということでしたが、まぁ考えても無駄だよって意味だったかもしれませんが笑、せっかくなのでとりあえず考えるだけ考えてみました。


⇒まず、話に出てきた「つるかめ算」ですが、「合計の数が決まっている」鶴さん亀さんの脚問題とは違って、こないだのシャツと帽子の例は「一般化したい」という意図で繰り広げていた話だったので(「求めたい数がたった一つに定まる」つるかめとはその意味でも違う感じですね)直接的な応用とはいえない感じですが、算数・数学としては(具体的な個数を求めるという意味でも)割と似たようなタイプの話で、つるかめ算の正統進化型問題といえそうですね。


なお余談ですが、当初GMATの数学問題はクソ簡単に思えたのでサクッと終わらせて、

「ちょっと短すぎて物足りなかったので、他の共通試験も見てみましょう。ビジネススクールではなく、より一般的な大学院に進学するための共通試験として、所属研究科的に学生たちが受験してくるものなので僕にはより馴染みのあるGREというのがあります。あとそれから、こちらは大学入試の共通試験、まさにセンター(共通テスト)に対応するものにSATというのもあるので、GMATでこれだけ簡単だったらSATは果たしてどんぐらいなんだ?と、まずはこちらから見てみましょうか」

…的な感じで、SATの方もちょっと垣間見ていたのです。


結果として、推論問題や言語問題も見てみて案外長くなったためまぁそっちはもういいかな、と思ったのですが、SATの数学1問目が、なんとまさにつるかめ算だったのです!


マジで、「試験問題を解いて偉そうに解説するの、もうワンパターンすぎるだろ」と思えたものの、せっかくなのでその1問目だけチェックしておくといたしましょう。

改めて、こないだまでと同じThe Princeton Reviewで紹介されていた、SATの練習問題(↓)からの拝借です。

www.princetonreview.com

 

You can use a calculator for questions 1–2. Learn more about the SAT Math Test


1. A gas station sells regular gasoline for $2.39 per gallon and premium gasoline for $2.79 per gallon. If the gas station sold a total of 550 gallons of both types of gasoline in one day for a total of $1,344.50, how many gallons of premium gasoline were sold?


(A) 25 (B) 75 (C) 175 (D) 475

 

 (和訳)

問1-2は電卓を利用可能。SAT数学テストについて詳しくはこちらプリンストンレビューのサイトへのリンク)。

 

1. あるガソリンスタンドでは、レギュラーガソリンを1ガロンあたり2.39ドル、プレミアムガソリンを1ガロンあたり2.79ドルで販売している。ある日このガソリンスタンドが両方の種類のガソリンを合計550ガロン販売し、合計の売上が1,344.50ドルだった場合、プレミアムガソリンは何ガロン販売されたか?


⇒毎度アメリカの試験をバカにするような形で申し訳ないですが、清々しいまでに完全なるただのつるかめ算・しかも電卓利用可って、これが大学入試問題ってマジでや~ばいでしょ、ぶっちゃけ日本の小学生が受ける中学入試の方がどう考えても、レベル100ぐらいの圧倒的大差でよっぽど難しい気もするわけですがそれは……と思えたものの、まぁ、その辺はやっぱり文化の違いもあるのかもしれませんしそもそもこれはあくまで共通試験ともいえますし、そういう難易度議論はともかく、早速解いていくとしましょう。

(ちなみに、とことんバカにし尽くさせてもらうと、電卓利用可らしいですが、ぶっちゃけこんなの電卓どころかペンすら使わずに、脳内計算余裕でした。

 割り切れない数字が沢山出てくるとか、あるいは巨大な数字を扱うならともかく、なぜこのレベルで電卓利用可なのか不思議なぐらい…??)

 

恐らくどなたもご存知かと思いますけれども、つるかめ算の基本は「全部ツルとして考える」って感じですね。

そんなわけで、ここでも当然、「全部レギュラーだったらいくらになるか?」を考えて、その金額から「不足分をプレミアムに置き換える」という王道戦略を取りましょう。

(ちなみに、つるかめ算を知らなくても、連立一次方程式でクッソ余裕に解ける、マジで中一レベルの問題ですね。

 x + y = 550、2.39x + 2.79y = 1344.5を解くだけです)


(かなりどうでもいい点ですが、ガロンは見慣れないので、以下「リッター」に置き換えようと思います。)

リッター2.39ドルのレギュラーを550リッター買った場合の合計金額は、当然「2.39 × 550」ですが、まぁ「脳内余裕」と豪語した以上リアルに脳内で計算した過程を丁寧に書いていきますと、この場合、流石に550倍は少し計算しづらいので、まぁ僕ならまず1100倍して、結果を2で割りますね。

1100倍というのは、1000倍と100倍の足し算なので、数字の入れ替えがないため脳内でも余裕といえるわけです。

2390と239を、まぁ脳内で


2390

 239


…と、よくある足し算の筆算をイメージすれば、多少繰り上がりがあっても、流石に4桁+3桁ぐらいなら脳内でいけて(問題文に239という文字列は記載されているので、それをイメージの手助けに使えば(桁をずらして脳内で並べるだけ)、より楽チンですね)、2629だな、と余裕で計算可能かと思われます。


ということで、550倍はその半分の1314.5ドルになるわけですが(「÷2」も、流石に余裕)、問題文にある実際の合計売上は1344.5ドルだったとのことで、最初の「13」はもう全く関係ありませんから、即脳内消去でOKですね(紙に書かずにやる場合、脳内保持する数字は(当たり前ですが)可能な限り1桁でも少ない方がいい感じです)。


ってことで、44.5ドルと14.5ドルの差を取ると、これは楽勝の30ドル(特に繰り下がりもない楽な引き算だったので、別に「13」を覚えておいても何の苦労もありませんでしたが(笑))……んで、レギュラーとプレミアの差額はリッターあたり0.4ドルなので、30 ÷ 0.4を計算すればよく、まぁこれは300 ÷ 4ってことで、最後まで幸い脳内余裕な易しい計算でしかなく、75リッターだけプレミアに置き換えればいい、すなわち求める答のプレミアの購入量は、(B)の75リッターだったということでした。

文字にするとやたら長いですが思考量としては本当に一瞬レベルで、まぁ何の自慢にもなりませんが本当に問題文を読み始めてから30秒とかからず解けたので、電卓を打つよりも早かったといえるぐらいに思えます。


まぁこんな小学算数問題を「脳内でいけました!」と得意になるのも滑稽すぎるのでその辺にしておきますが(笑)、そういえばこのつるかめ算は、僕は家にあった「小学校6年分の算数が〇日で分かる本」みたいなので取り上げられており(今調べたら、後継なのかもしれませんが「小学校6年分の算数が教えられるほどよくわかる」という本ばかりがヒットしてきて、記憶にある本は見つかりませんでしたが)、小学低中学年で興味本位にパラパラと眺めてみた所、(イマイチまだ理解できない章もあったものの)この話が大変分かりやすくて、「面白い!スゴイ!!」と感動した記憶がアリアリと残っている、思い出深い話といえる感じです。

確か「大人ならxやyの文字を使った方程式で解くこの問題、実は小学生でも解けるんです!」みたいな項目だった記憶がありますが、まぁ実際xとyの係数が1以外でも使える連立方程式の方が何気に万能といえる気もするものの、こういうのは楽しくて子供の教育にとてもいいものに思えますね。


とりあえずツルカメだけ見てみたSATでしたが、あくまで共通試験とはいえ明らかにどう考えてもごっつ簡単で、改めて、入試問題の難しさでいえば、やっぱり東アジア圏は随一なんだろうな、という気がします(特に数学は)。


ちなみに関係ないですがこのSAT、日本人的には「サット」と読みたくなるように思えますけど、まぁ絶対そう読まれないわけではないものの、基本的にアメリカでは「エス・エー・ティー」って呼ばれているように思います。

例によってこの類の頭字語は、基本的にはアルファベットのベタ読みが多い、って感じですね。

(あぁでも、GMATは「ジー・マット」な気もしますね。まぁ、その辺はもう本当に、何の決まりもない何となくの雰囲気次第、って感じでしょうか(笑)。

 一応、GMATは他に同じ読みの単語が存在しない、かつ単語的に呼びやすいという二つの条件が重なったからそう呼ばれる…って気もしますね。)

 

一方、ご質問の方に戻ると、整数不定方程式の一般解の方は、やっぱり小学生が理解できてキャッキャと楽しめる鶴亀くんと比べると、レベルが2つぐらい上かな、と思える話かもしれません。

具体的にコメントにあった『数えて出した答えの1つ、N=8とM=4を使わないといけないってことですよね?(既に出した答えを入れないと式が出来ない仕組みがわかりません…』の部分、まさにこれが数学を勉強していてイラつくポイント筆頭といえるように思えます。


要は「何でそんなことするの?そうする意味が分からない。仮にそれで答が出たとしても、そんな突拍子もない発想に至る理由が謎すぎて自分には無理だ。スマンけどイミフすぎてイラつくから、ゲームさせてもらうわ」と、多くの生徒は速やかに考えることを放棄してしまうわけです(笑)。


ただこれはやっぱそうですねぇ、「実際に出した答の1つを使って、それを式のままの形で表して、文字式との差分を取る」とか意味分かんない操作にも程があるんですけど、こういうのは改めて、めちゃくちゃ頭いい人が考えた、要はめちゃんこナイスなテクニック=美味しい料理の調理法みたいなもんで、先人の偉大なる知恵を借りるだけで目的(=金額ピッタリになる個数の組合せの、一般パターンのゲット)が達成できるといえますから、ここは割り切って、素直にパクらせてもらうのが賢いといえる話な気がするかもしれません。

実際、自分では全く浮かばないやり方だし、イマイチ原理が分からないのにそういうやり方に従うというのもシャクなので突っぱねたくなる気持ちも非常によく分かるのですが(いわゆる「天下り的な発想」すぎて腹立つ解法みたいなのは、他にも数学ではめちゃんこあった記憶があります)、昔の偉人が考えて長い年月を経ても残された解法ということですから、むしろそんな高等なもの中高生が思い浮かぶわけもないんだ、スマンがそのやり方拝借させていただきますよ~、頭いい昔の人サンキュー!…とでも思うのが、数学(理系大学入試レベル)が解けるようになるための第一歩・必須条件ではないかな、といえるような気がします。


ちなみにこないだ紹介していた方法は「ユークリッドの互除法」の応用であり、改めて、ユークリッドさんが思いついてそのまま名前が残ってるほど画期的なやり方なんだから、自分が多少思いつかなかったり必然性が理解できなくてもしゃーない、とりあえずパクって自分のものにしちゃえばいーんだよ、ってな所ですね。


ユークリッドの互除法については、解説サイトが無限にあると思うのでそちらを参考にしていただければ、仕組み・使い方・証明の全てが分かると思いますけど(当然、Wikipedia(↓)なんかも参考になりますね)……

ja.wikipedia.org

…って今見てみてめっちゃ驚いたんですが、僕、整数問題は基本的に書籍で学習しただけだったので、文字だけでしか学んだことがなかったんですけど(僕の記憶が確かならば、この手の整数論のテクニックは、学校の授業ではほとんど扱われなかった気がします。まぁ、ボーっとしてただけで、実はどこかの授業で聞いていたのかもしれませんが(笑))、これ、「ごじょほう」って読むんですね!


僕は正直、ずーっと「こうじょほう」って読んでたことをここに告白します(笑)。


いやだって、互助会とか、「こうじょかい」って読むじゃない?……と思って念のため確認してみたら、え??!これも「ごじょかい」なの??


う~わマジで、国語・漢字問題で間違えた記憶がないぐらい漢字激ツヨ勢を自認していたのに、これは本気で知りませんでした(笑)。

あぁ、「交互」から、「互」が「こう」とも読めるとなぜか勘違いして、さらに「控除」というよりよく聞く響きの熟語も存在することから、二重の勘違いをしてしまってたんですね…。


お恥ずかしながら、割とマジもんの衝撃レベルの発見でしたが、自分の手で誤解をとくことができて何よりでした。

危うく恥かく所だったぜぇ~(…って、公表してたら恥かいてるも同然ですが(笑)、幸い今までの人生で一度も実生活で「ごじょほう」「ごじょかい」と口にしたことはありませんでした)。

(ただ、マンデラ効果(多くの人が、事実と異なる記憶・誤解を共有している現象→Wikipedia)じゃないですけど、何となくこれを「こうじょかい」って読んでる人、他にもいるんじゃないかな…と思うのですが、まぁこれも本当にずーっと誤解してきたからそう思いたいだけで、僕だけかもしれませんね(笑))

 

…って、大分スペースも押してるのにしょうもない話に逸れましたが、ユークリッドの互除法ってのは、最大公約数を求める便利なやり方のことなんですね。

具体的な仕組みはWikipedia他、高校数学の解説サイトに任せますが、一言でいえば、

「2つの数の最大公約数は、『大きい方を小さい方で割ったときの余り』と『小さい方の数字』との最大公約数に等しい」

というもので、まぁ具体例をWikipediaから拝借させていただくと、

(問題) 1071 と 1029 の最大公約数を求める。

  • 1071 を 1029 で割った余りは 42
  • 1029 を 42 で割った余りは 21
  • 42 を 21 で割った余りは 0

よって、最大公約数は21である。

…こんな感じで、どんなに大きな数同士でも、最大公約数を割と楽に求めることができる、って優れものなんですね。


これ、証明はともかく、仕組み(運用法)としては非常に簡単なものなのに、僕の記憶が確かなら小学校どころか高校でも特に教えてくれない話だったと思うんですけど、学校で教えてくれてもいいぐらいに便利な話に思えます。


まぁそれもともかく、あえてわざわざユークリ法を再掲したのは、こないだのシャツと帽子の問題で、答の一般化をしたはいいけれど、そもそも最初の一つの答を出すときに、かなり力技で(具体的な個数(その値段で買える最大の数)から初めて、一つずつ減らす)解いていたんですが、「これがもしめちゃくちゃ巨大な金額とかで、当てずっぽうで具体的な答を一つ出すのがめっちゃ難しかったらどうしてくれる!」という、何事も「この問題だけじゃなく、一般化してどのパターンでも解けるようにしておきたい」という数学的な志の高い考え方に応じるため、って感じでした。


改めて見直しておくと、「22ドルのシャツと、26ドルの帽子を何枚かずつ買って、ちょうど280ドルにするには?」という問題でしたが、まぁ問題の仕組み的にもこれは帽子10枚から初めて1枚ずつ減らしていくのでいけるわけですけど、これが仮に2万8000ドルとかだったら、当てずっぽうでいくには途方もない数すぎて大変なわけです。

そしてこれは、ユークリ法の応用、これまた非常に頭のいい冴えたやり方で、どんなに大きな数同士のペアでも必ず答の1つである整数の組を見つけられる優れた方法があるのです。

そして1つさえ見つかればこないだの方法で一般化可能ですから、無限にパターンを見つけられるってことなんですね。


まぁせっかくなら当てずっぽうでは分からないぐらい大きい数にしてもいいですが、やり方は同じなので、元々の問題文と同じ条件でいきましょう。

  • 22N + 26M =280


この関係を満たす整数の組み合わせを1つ、ユークリ法を応用して見つけるやり方ですね。

まずは、数字が小さい方が計算がしやすいですから、両辺を2で割ってその関係にしておきます。

  • 11N + 13M =140


こうなっても、この式の意味する所は完全に、全く同じまんまですね。


で、例によって、以下、「何でそんなことするのさ?」という疑問が湧くのも当然なのですが、これは改めて、基本的に「偉い人が、こうすれば絶対に正しい組み合わせが見つけられることを思いついたんだ。俺ら凡人には思いもつかないけど、マジでそうすれば解けるから、パクらせてもらおうよ」ってお話でしかないので、深く考えすぎないのが吉といえましょう。


そんなわけで、この手の不定方程式の定石で、ここで、ユークリッドの互除法で出現する「最大公約数を求める式」を使います。

最大公約数を求める式…というか余りを含む割り算の式は、

(大きい数)=(小さい数)×(商) + (余り)

という風に、数式で表すことができます。

(例:1071 を 1029 で割った余りは 42 ⇒ 1071 = 1029 × 1 + 42


これを、余りが最大公約数になるまで繰り返していく形ですね。

↑の「1071と1029」の例も、↓の「13と11」の例も、最初の割る数が1でしょぼすぎますが、何気に重要なのできちんと表していくとしましょう。

 

問題の11と13の場合は、こうなります。

  • 13 = 11 × 1 + 2
    (↓:小さい方の数「11」を、余りの「2」で割る)
  • 11 = 2 × 5 + 1
    (余りが1=最大公約数が1ということで、ここで終了)


今回はたった2ステップで終わりましたが、もっと大きい数の場合、何段階もこの操作を繰り返して、最後、余りとして、最大公約数の1が得られるまで続ける感じですね。

で、ここからが正直「そんなの答ありきのやり方じゃん!ズルいぞ!」と怒れるポイントなんですけど、この式を使って、「11×● + 13×▲ = 1」の形を目指します。

(なぜ「=1」なのかは、互いに素の2数の場合、先ほどの最大公約数を求める計算が、必ず1で終わるためです。)


どうやればいいかというと、これも賢い方法というか、まぁ「よぉ思いついたね」と感心するやり方なのですが、まず、分かりやすいように、右辺を余りだけが存在するように変形しておきますと、

  • 13 - (11 × 1) = 2
  • 11 - (2 × 5) = 1

となります。


ここで、「=1」を出発点に、なるべく11と13とは無関係の数字を消すための努力をしていきます。

今回はたった2つの式なので楽勝なのですが、最大公約数を求めるために何段階も計算する必要がある場合、順番に入れていく形ですね。


ではまず「=1」である最後の式、「11 - (2 × 5) = 1」に着目すると、上の式から「2=13 - (11 × 1)」であることが分かるため、これをこの式の「2」に入れてやります(計算はせず、形は保ったままなのがポイント!)。


 (↓「2」に「13 - (11 × 1)」を代入)

  • 11 - ( ((13 - (11 × 1)) × 5) = 1


この時点で、(係数はかかっているものの)無事に、左辺には11か13かの項しかいなくなりました。

普通に(13と11を崩さないように)計算して整理すると、

 

  • (11 × 6) - (13 × 5) = 1


という形が得られます。

 

…ってなわけで、あっさり、「11N + 13M = 1」を満たす解が1つ発見できたことになります。

N=6、M=-5で、この計算式は「1」になりますね(66-65=1)。


んで、今求めたかったのは「=140」でしたから、最後この両辺を140倍すれば、N=840、M=-700というのが「11N + 13M = 140」を満たすの1つであることを、無事、見出すことに成功しました!

(11×840 - 13×700 =(計算がやや大変だけど)140 ですね。)


1つ解が見つかったら、あとはこないだのように、N, Mを含む文字式と「11×840 - 13×700 =140」とを両辺引いてやって、N側が13の倍数なので「整数k」を使ってぇ…ということをやってやれば、一般解も見つかります。

(あくまで一般解なので、計算していくと前回と形が違う式が得られますが、意味する所は同じですし、それも、文字を変えていくと同じ式に辿り着きます。)


【復習】

こないだの計算で、一般解「 N = 13 k + 8」と「M = -11 k + 4」を得ていました。

せっかくなので、今回得られた「1つの解」から一般解を求めてみましょう。

11N + 13M = 140」から、「11×840 - 13×700 = 140」を、両辺引いてやればいい形ですね。

(あ、触れ忘れていましたが、ご質問に「なぜ2つの式の両辺を引くのか?理由が分からない」とありましたが、これはまぁ「偉い人が考えた」という以外に合理的な説明を加えるなら、「『(Nの倍数) と (Mの倍数) が同じ数であること』を示すために、『右辺=0』の形を作りたかったから」ってのがその理由になります。

 右辺=0なら、この場合何かから何かを差し引きして0になる以上、「(Nの倍数) と (Mの倍数) が同じ数でなくてはいけない」といえるため、例の「互いに素だから、『Nにかかるのは13の倍数』」みたいなことがいえるわけですね。)

 

2つの式を引き算すると、

  • 11 × (N-840) + 13 × (M+700) = 0

となります。

例によって「N-840」は必ず13の倍数なので、

  • N-840 = 13 k

と置いてやりましょう。


これを1つ目の式に代入してNを消すと、

  • 11 × 13k + 13 × (M+700) = 0


両者を整理すると、今回の考え方で得られる一般解は、

  • N=13k + 840
  • M=-11k -700

だという形ですね!


ここで、k=-64 を入れてやると、N=8、M=4という、こないだの回答であるシャツ8・帽子4が、無事得られます!


また、k=j - 64 と考えれば、

  • N=13 (j - 64) + 840 = 13j + 8
  • M=-11 (j - 64) -700 = -11j + 4

…と、結局の所、文字が違うだけで同じことを言っている式だということがお分かりになるかと思います(kは何の数字だっていいんだから、jでも同じこと)。


求め方が違ったため見た目は若干異なれど、意味する所は同じであるという、数学にしては珍しく答は何パターンもあるという感じでした。

 

…って、いやぁ~、数学や文字に親しんでいない方が、以上の説明をパッと読んでパッと理解できるわけがなさすぎる、正直下手クソすぎる説明になってしまいましたね(笑)。


ちょっと時間切れなのでとりあえず今書き終えた分だけアップしようと思いますが、アップ後、もうちょびっつだけ分かりやすく説明を加えておこうかなと思っています。(⇒追記:既にいくつか説明を加えましたが(※下にもちょっとだけ)、ただ長くなって、余計読む気が失せただけという説、あり(笑))

(とはいえ、本質的には面倒な計算&文字列の登場は免れませんから、まぁ今さら受験するわけでもないわけですし、真剣に考えるほどのものでもないかもしれませんね(笑))

 

----------

※最後おまけで、ユークリッドの互除法を複数回やる必要のある例を見ていこうと思います。

「23ドルのブーツと5ドルの靴下を何着ずつか組み合わせて、ちょうど167ドルにするにはどうすれば良いか?」でいってみましょうか。


これは結局、

  • 23N + 5M =167

…を満たす整数 (N, M) のコンビを求めたい、というお話ですね。

まずは、ユークリッドの互除法で、23と5の最大公約数を求めていきましょう。

  • 23 = 5 × 4 + 3
  • 5 = 3 × 1 +2
  • 3 = 2 × 1 + 1

余りが1になったため、ここで終了(最大公約数が1だったので、5と23は互いに素)。

(ちなみに、両者の係数が互いに素ではない組合せの場合は、シャツと帽子の例で最初にやったように、元々の式を両辺約数で割り続けて、「互いに素」にまで簡単にしてやればいいだけですね。)

 

上の3式を、分かりやすいように「右辺=数字1つ」にしておきます。

  • 23 - (5 × 4) = 3
  • 5 - (3 × 1) =2
  • 3 - (2 × 1) =1

では、一番下の式を基準に、一つずつ代入して、目的の「23」と「5」だけを残す作業に取り組みましょう。

  • 3 - (2 × 1) =1
    (↓「2」に真ん中の式の左辺を代入)
  • 3 - ((5 - (3 × 1)) × 1) =1
    (↓「3」に上の式の左辺を代入)
  • 23 - (5 × 4)- ( (5 - ((23 - (5 × 4)) × 1) ) × 1) =1

大量の括弧で分かりにくいですが、幸い「×1」が多いので計算は複雑ではなく(…っていうか、当初「×1」はちゃんと書いた方がいいと思ってましたが、よく考えたら大して重要でもなかったのでわざわざ毎度書かなくて良かったかもしれません(笑)。でも、最後まとめるときに、足し引きを忘れないように注意が必要ですね)、23と5を残す形でまとめると…

  • 23 × 2- 5 × 9 =1

となりました。46-45で、正しい式ですね。

で、元々の式は「=167」だったので、167倍してやると、

N=334、M=-1503

というペアが、「23N + 5M =167」を満たす解のひとつであることが分かりました!

 

しかしこれは靴下の数がマイナスですし、微妙です。

一般解を求めて、両方プラスの数を探しましょう。


23N + 5M =167」と「23×334 - 5×1503 =167」とを引き算しますと、

  • 23 (N - 334) + 5 (M + 1503) = 0

となりまして、(N - 334) は必ず5の倍数ですから整数Kを使って(N - 334) =5kと表すことができ、これを代入すると

  • 23 × 5k + 5 (M + 1503) = 0

で、両者を整理して、N=5k + 334、M=-23k - 1503 ということが分かりましたが、これも数が大きくて微妙なので、kに「k-66」を代入して計算しますと(同じ文字ですが、特に全く問題ありません。文字は何でもいいので。)…

  • N=5k + 4、M=-23k + 15


という、大変簡単な式が得られました!


そんなわけで、この式のkに0を入れたら、N=4、M=15と、ブーツ4足・靴下15足という、僕が最初に(適当に)考えた数字に辿り着けた形ですね!!(もちろん合計で167ドルです。)


この例も、ここからkをどういじってもどちらかはマイナスになるため、これが唯一の合計金額167ドルになる買い物パターンということですね(売るのを認めない場合)。

 

長くなりましたが、これで「ピッタリ金額買い物」問題は完璧といえましょう(…って、こんな問題、実生活で出会う場面があるかよ(笑))。

----------


ちなみに、タイトルにしたGCDは「最大公約数」の英語・頭字語(greatest common divisor)で、それに触れることすら忘れるぐらい、大したことない話のくせにクッソ長くなってしまいました。

正直、微妙すぎる記事で恐縮です(笑)。

 

アイキャッチ画像は、当然、鶴と亀のいらすとをお借りしました。

…あれ、いらすとやにしては、ちょっと絵が雑…?と思ったら、これは2012年4月公開の絵で、いらすとやって調べたら2012年1月開設のようで、これは始まってすぐの作品なんですね!

まだまだ線に不慣れさが感じられて新鮮でしたが、いらすとやにも歴史ありということでしょう。

(っていうか、いらすとやが2012年開設って意外すぎます。僕が学生時代って、いらすとやはまだ存在しなかったんでしたっけ…??時の流れは早いですね…!)

にほんブログ村 恋愛ブログ 婚活・結婚活動(本人)へ
にほんブログ村