ChatGPTとCopilotに数学の問題を解いてもらっただけのメモ
今週の金曜日にChatGPTを軽く触ってみた。その時数学の問題を解けるのか気になり、試してみた。
ChatGPTは数学の問題を解くことが出来ると聞いていたので、ちょっと期待していた。もちろん難しい問題は無理だと思うので、程よい問題がないかと考えていたら、机の上によさそうなメモが転がっていた。
n, x, yを
n = 3m^{2}\pm1 ,x = 4m^{2}\pm1 ,y = 8m^{3}\pm3m
とする。このときn = x^{3} - y^{2}
が成り立つ。
ということで、ここから次のような問題を作った。
n = 3m^{2}+1 としたとき、n = x^{3} - y^{2} を満たす整数x, yをmを用いた式で表せ。
とりあえずこの問題をChatGPTと比較用にCopilotに出してみる。
ちなみに、ChatGPT及びCopilot本人に数学の問題を解くことが出来るか聞いてみたところ、両者ともある程度は解けるといっていたので期待が高まる。
ChatGPT(GPT-4)の場合
とりあえず解いてもらったが、引用形式で書いている場所はChatGPTの出力のままである。引用形式でない場所は、私が内容を省略して書いている。
また、小見出しのテキストはChatGPTがほぼ書いた通りである。
アプローチ
このタイプの問題では、うまく代数的な置き換えを考えて、等式が成り立つように調整します。
試しに、以下の形を仮定してみます:
x = m + 1
すると:
x^{3} = (m + 1)^ {3} = m^{3} + 3m^{2} + 3m + 1
今、x^{3} - y^{2} = 3m^{2} + 1 にしたいので、差をとってみましょう。
x^{3} - y^{2} = m^{3} + 3m^{2} + 3m + 1 - y^{2}
これを:
= 3m^{2} + 1
にしたい。
つまり:
m^{3} + 3m^{2} + 3m + 1 - y^{2} = 3m^{2} + 1
よって
m^{3} + 3m + 1 - y^{2} → y^{2} = m^{3} + 3m
ここから、y = \sqrt{m^{3} + 3m} としたいが、これが整数になるよう工夫する必要があります。
うまくいく形の発見:
別の形として、次の形を試します。:
x = m + 1, y = m^{2} + m
すると:
・x^{3} = (m+1)^{3} = m^{3} + 3m^{2} + 3m + 1
・y^{2} = (m^{2} + m)^{2} = m^{4} + 2m^{3} + m^{2}
なので、
x^{3} - y^{2} = (m^{3} + 3m^{2} + 3m + 1) - (m^{4} + 2m^{3} + m^{2}) = -m^{4} - m^{3} + 2m^{2} + 3m + 1
これは明らかに3m^{2} + 1 とは一致しない。
試しに具体的なmを代入して探る:
ここでは実際にmに1から順に自然数を代入している。また、xの値はm + 1を代入してyの値を調べていた。
そして気づいたこととして
・m = 1 → x = 2, y = 2
・m = 3 → x = 4, y = 6
を提示し、これを一般化できるかを検討するといっていた。
一般形の推測
先ほどの例から
解の導出(うまくいく形)
新たに
結論(正解):
試行錯誤の結果、
最終的な正しい形:
試してうまくいった組として
結論:
実際にうまくいく簡単な形を
実験的に成り立つ形:
先ほど成り立つ場合があった式を出して計算し始めたが、出力できる限界まで来たようで途中で止まった。
続きを出力してくださいとお願いしてもいいが、多分答えにたどり着かないと考えられるのでやめておいた。
Copilot(Smart(GPT-5))の場合
方針
偶奇の次数をそろえて高次の項を打ち消すために、次の形を仮定します。
・仮定
x = am^{2} + 1, y = cm^{3} + d{m}
こうすると、x^{3} とy^{2} の展開で奇数次(m^{5}, m^{3}, m )の項は最初から現れず、定数項はxから1までが出ます。高次(m^{6}, m^{4} )の係数を一致させて消し、m^{2} の項だけを所望の値3に合わせるのが狙いです。
展開と係数比較
まず展開します。
x^{3} = (am^{2} + 1)^{3} = a^{3}m^{6} + 3a^{2}m^{4} + 3am^{2} + 1
y^{2} = (cm^3 + dm)^{2} = c^{2}m^{6} + 2cdm^{4} + d^{2}m^{2}
したがって
x^{3} - y^{2} = (a^{3} - c^{2})m^{6} + (3a^{2} - 2cd)m^{4} + (3a - d^{2})m^{2} + 1
・高次項の消去条件
a^{3} = c^{2}, 3a^{2} = 2cd
・目標の二次項
3a - d^{2} = 3
パラメータの決定
まず
a^{3} = c^{2} から、整数解を得るためにaを平方数と置くのが自然です。a = t^{2} とするとc = t^{3} となります。次に3a^{2} = 2cd は
3t^{4} = 2t^{3}d → d = 3t/2
整数dのためにtは偶数とし、t = 2kとおくと
a = 4k^{2}, c = 8k^{3}, d = 3k
このとき二次項の係数は
3a - d^{2} = 3・4k^{2} - (3k)^{2} = 12k^{2} - 9k^{2} = 3k^{2}
したがって
x^{3} - y^{2} = 3k^{2}m^{2} + 1
目標は3m^{2} + 1 なのでk^2 = 1 を選べばよく、k = 1(または-1)で達成できます。
最終結果
・解:
x = 4m^{2} + 1, y = 8m^3 + 3m
このとき恒等的に
x^{3} - y^{2} = 3m^{2} + 1
が成り立ちます。
検算
求めたx, yを展開して計算し、nと一致しているかを確認しているだけなため、省略する。
結果として
ChatGPTの方は正解を出すことが出来ず、Copilotは解くことが出来た。一応双方とも3回同じ問題を出したが、結果は変わらなかった。
ChatGPTの方は、毎回xを一次式として考えていた。
一方でCopilotはxを二次式、yを三次式として考え、係数比較を行った。また、奇数の項を作らないようにするための形にしていた(計算量を減らすための工夫)。
そもそも今回使用したChatGPTはGPT-4ベースのモデルを使用しており、CopilotはGPT-5ベースのモデルを使用している。そのため単純な比較はできない。
しかしChatGPTの方は「うまくいく形」とか「結論、正解」とか言っておきながら間違っているのは謎(もちろんその後うまくいかないと付け足してはいる)。
「なんでGPT-5ベースのChatGPTを使わないの?」とか「Copilotも前のモデルで検証すれば?」という疑問もあると思いますが、今回はサインインをせずに無料で使えるなかで、より高性能なモデルを使用したかったためである。


コメント