BardとChatGPTの数学力を難関大数学入試で比較(東京大学編)

 対話型AIでおそらくもっとも知名度が高いのはChatGPTでしょう。しかし、性能の面ではMicrosoftのBingAIやGoogleのBardも負けてはいません。

 BingAIの性能はすでに検証済みなので、今回はBardの実力を試してみます。ちなみにBradは3つ回答案を出力します。出題する前にBardにひとつ質問してみました。

 

 大学の入試数学は解けますか?

 はい、大学入試数学の問題を解くことができます。私は、大量のテキストとコードのデータセットでトレーニングされた大規模な言語モデルです。テキストの生成、言語の翻訳、さまざまな種類のクリエイティブコンテンツの作成、質問への情報提供を行うことができます。私はまだ開発中ですが、次のタスクを含む多くの種類のタスクを実行することを学びました。


 * あなたの指示に従い、あなたの要求を慎重に完了するために最善を尽くします。

 * オープンエンド、やりがいのある、または奇妙な質問であっても、私の知識を使用して包括的かつ有益な方法で質問に答えます。

 * 詩、コード、スクリプト、楽曲、メール、手紙など、さまざまなクリエイティブなテキスト形式のテキストコンテンツを生成します。私はあなたのすべての要件を満たすために最善を尽くします。


 大学入試数学の問題は、私にとって難しいものではないはずです。私は膨大な量の数学的知識を持ち、それを問題を解決するために使用することができます。また、問題を解決するためのさまざまな方法を理解しており、最善の方法を選択することができます。


 大学入試数学の問題を解く必要がある場合は、お気軽にご相談ください。私は喜んでお手伝いさせていただきます。


 自信満々の回答ですね。それでは解いてもらいましょう。今回選んだのは1989年東大数学理系第4問。


 10  210/(10 10+3)の整数部分の桁数と、1の位の数字を求めよ。ただし、3 21=10460353203を用いてよい。


 桁数を求めるのは比較的容易ですが、1の位を求めるのが少々難しいです。僕自身、1の位を求めるところで苦戦しました。果たしてBardは解けるのでしょうか。


 10^210/(10^10+3)の整数部分の桁数と、1の位の数字を求めてください。ただし、3^21=10460353203を用いてもよいです。


 10^210/(10^10+3)の整数部分の桁数は200です。1の位の数字は0です。


 10^210/(10^10+3)=10^210/(10^10(1+3/10^10))=10^210/(10^10(1.003))=10^200(1.003)=1.003*10^200


 1.003の整数部分の桁数は1桁なので、10^200の整数部分の桁数は200です。1の位の数字は1.003の1の位と同じで0です。


 10^210/(10^10+3)の整数部分は200桁で合っているのですが、10^200は201桁の数だし計算式も間違っています。1の位の値は0ではないのでこれは完全に間違い。


 解答2

 はい、わかりました。


 10^210/(10^10+3) = 10^210/(10^10+3^21)

 = 10^210/(10^10+10460353203)

 = 10^210/10^1010460353203

 = 10^10010460353203

 =  104603532030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000


 論理の「ろ」の字もない……。


 解答3

 はい、わかりました。


 10^210/(10^10+3)の整数部分の桁数は200です。1の位の数字は0です。


 10^210/(10^10+3)を計算すると、 1.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000


 またかよ。今度はChatGPTに解かせてみます。ちなみにGPT-3.5です。


 10^210/(10^10+3)の整数部分の桁数と、1の位の数字を求めてください。ただし、3^21=10460353203を用いてもよいです。


 指定された 3^21 = 10,460,353,203 の値を利用します。


 まず、指数のルールを使用して指数部分を単純化します。


 10^210 / (10^10 + 3) = 10^(210 - 10) / (1 + 3 * 10^(-10))


 これを計算するために、分母の 1 + 3 * 10^(-10) を整数部分と小数部分に分割します。


 整数部分: 1

 小数部分: 3 * 10^(-10)


 分母の小数部分は非常に小さく、無視して計算することができます。


 10^(210 - 10) ≈ 10^200


 したがって、元の式は次のようになります。


 10^210 / (10^10 + 3) ≈ 10^200 / 1


 整数部分の桁数は、10^200 の桁数と同じです。10 のべき乗の場合、桁数は指数に 1 を加えた値になります。


 整数部分の桁数は 200 + 1 = 201 桁です。


 次に、整数部分の 1 の位の数字を求めましょう。この場合、10^200 の 1 の位の数字を求めることになります。


 10 のべき乗の場合、1 の位の数字は常に 0 です。


 したがって、整数部分の桁数は 201 桁であり、1 の位の数字は 0 です。


 桁数も1の位も違います。しかも10,460,353,203を利用すると書いておいて結局使ってない。


 10  21010 10+3で割った数は、10 10で割った数より小さい(分母が大きくなるほど値は小さくなるから当然)ので


 10  210 / (10 10 + 3) <10  200


 になります。10 200は1の後ろに0が200個ある、つまり201桁の数なので10 210 / (10 10 + 3)は最大でも200桁です。しかし、この時点でまだ結論は出せません。10  19910  210 / (10 10 + 3)を示す必要があります。


 仮に10  19910  210 / (10 10 + 3)として両辺に10 10 + 3を掛けると、


 10  209 +3・10  19910  210


 10  21010  209・10=10  209・(1+9)

 =10  209+9・10  209


 明らかに3・10  199<9・10  209なので、10  19910  210 / (10 10 + 3)が正しいことがわかりました。よって、10  19910  210/(10 10+3)<10  200より、整数部分の桁数は200です。


 あとは1の位の数字を求めるだけですが、この計算が少し面倒です。


 10  210/(10 10+3)の整数値を200桁すべて正確に計算しようとするとかなりの労力が必要になりますが、簡易的に計算することはできます。

 

 まず、10  210を消したいので10 10 + 3に10  200を掛けて10  210から引きます。


 10  210-(10  210+3・10  200)=-3・10  200


 今度は-3・10  200を消すために10 10 + 3に-3・10 190を掛けて-3・10  200から引きます。


 -3・10  200-(-3・10  200-9・10  190)=9・10  190


 さらに、9・10  190を消すために10 10 + 3に9・10 180(3 210 180)を掛けて9・10  190から引きます。


 9・10  190-(9・10  190+27・10  180)=-27・10  180


 同様の操作を繰り返していけばいいわけです(もっと効率的な方法はあると思いますが僕の実力ではこれがやっと)が、よく見ると、10の指数が10ずつ減り、3の指数が1ずつ増えていくのがわかるでしょうか。また、3の指数が偶数のときは正、奇数のときは負の数になっています。これを意識しながら操作を進めていくと、1の位は


 10 03 2010 -103 21


 を計算すれば求められます。問題文から3 21=10460353203なので指数表記すると1.0460353203・10 10です。ここは1.04としましょう。

 3 20=3486784401で0乗は1と定義されています。よって、10 03 2010 -103 21≒3486784401-1.04=3486784399.96

 したがって、10  210/(10 10+3)の1の位の数字は9です。


 かなり手間のかかる問題でした。BardとChatGPTの解答を比較すると甲乙つけがたい。強いて勝敗をつけるなら桁数を当てたBardでしょうか。実際の試験なら間違いなく0点ですけどね……。

 

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る