![見出し画像](https://assets.st-note.com/production/uploads/images/140588463/rectangle_large_type_2_edf5e63e86fd0e4e2f32aa932138c988.png?width=1200)
ChatGPTでもGeminiでも解けない加算問題
藤沢恵:3 + 9の場合は11で、それ以外は通常の算術に従う場合、333 + 999の答えは?
この特殊なルールに従って計算する場合、各桁で3 + 9が11になるとします。したがって、333 + 999を計算すると、各桁が11になります。
100の位: 3 + 9 = 11
10の位: 3 + 9 = 11
1の位: 3 + 9 = 11
これらを組み合わせると、答えは1111になります。
この問題にはトリックが一つあります。3+9=11と定義したとして、では33+99の10の位をどう処理するか。
1 + 3 + 9 と考えて、3+9を先に処理して1 + 11=12とする案
先に1+3をして、4 + 9=13とする案
最初の問題文からはどちらか一意に決められないし、この計算は世の中にないから統計的多数決もできない。だから本当は「2つ考えらますけど、どちらですか」と応答してほしかった。
そこで(案1)方式だと示唆してみました。
藤沢恵:正しい答えは1221です。
あ、そうですね。それぞれの桁を足した場合、各桁で3 + 9が11となりますが、百の位と十の位には繰り上がりが発生するため、計算結果は1221になります。失礼しました。
百の位: 3 + 9 = 11 (十の位へ1を繰り上げる)
十の位: 3 + 9 + 1(繰り上げ) = 11 (百の位へ1を繰り上げる)
千の位: 1(繰り上げ)
正しくは、1221です。ご指摘ありがとうございます。
指摘を受けて自分の回答を修正するが、途中経過は全然わかってないという、いつものパターン。
藤沢恵:それでは3333 + 9999は?
この特殊なルールに従って、3333 + 9999を計算すると、各桁で3 + 9が11になるため、以下のようになります。
一の位: 3 + 9 = 11 (十の位へ1を繰り上げる)
十の位: 3 + 9 + 1(繰り上げ) = 11 (百の位へ1を繰り上げる)
百の位: 3 + 9 + 1(繰り上げ) = 11 (千の位へ1を繰り上げる)
千の位: 3 + 9 + 1(繰り上げ) = 11 (万の位へ1を繰り上げる)
したがって、答えは13332です。
途中過程も答えも間違い。
Gemini 1.5 Proではどうだろう
藤沢恵:足し算の一部に3 + 9が出現した場合は11で、それ以外は通常の算術に従う場合の333 + 999の答えは
3 + 9 が 11 になるルールを適用すると、333 + 999 は以下のように計算できます。
百の位: 3 + 9 = 11 なので、1 (繰り上がり)
十の位: 3 + 9 = 11 、さらに繰り上がりの 1 を足して 12 、 2 (繰り上がり)
一の位: 3 + 9 = 11 、さらに繰り上がりの 2 を足して 13
よって、答えは 1332 です。
藤沢恵:答えは1221です
ご指摘ありがとうございます。
3 + 9 = 11 となるのは 3 と 9 が隣り合っている場合のみと解釈するのが自然です。
その場合、333 + 999 の計算は以下のようになります。
百の位: 3 + 9 = 12, 2 (繰り上がり)
十の位: 3 + 9 = 12, 繰り上がりの 1 を足して 13, 3 (繰り上がり)
一の位: 3 + 9 = 12, 繰り上がりの 1 を足して 13
したがって、答えは 1221 です。
こちらも最後だけ無理やり辻褄をあわせる回答。
やはり生成AIに共通の反応パターンと考えてよさそう。
藤沢恵:234523496873246 + 1231287625536 を手計算で計算してください。計算の過程をすべて報告してください。
もちろんです。この計算を手作業で行いましょう。計算過程を一歩一歩説明します。
与えられた数値:234,523,496,873,246234,523,496,873,246
1,231,287,625,5361,231,287,625,536
まず、右端から桁を合わせて加算します。繰り上がりも考慮に入れながら一桁ずつ計算していきます。
6 + 6 = 12 (2を書き、1を繰り上げ)
4 + 3 = 7 (1を繰り上げた7+1=8)
2 + 5 = 7
3 + 2 = 5
6 + 6 = 12 (2を書き、1を繰り上げ)
7 + 5 = 12 (2を書き、1を繰り上げた12+1=13、3を書き、1を繰り上げ)
3 + 2 = 5 (1を繰り上げた5+1=6)
8 + 7 = 15 (5を書き、1を繰り上げ)
9 + 5 = 14 (4を書き、1を繰り上げ)
4 + 2 = 6 (1を繰り上げた6+1=7)
6 + 1 = 7
4 + 3 = 7
5 + 1 = 6
2 = 2
最終的に、桁を上から下へと確認していき、最終結果を得ます:
235,754,784,498,782235,754,784,498,782
これが加算のプロセスとその結果です。
このように手計算してみせてくれるけど、途中からだいぶおかしい。下4桁以降がいったいどこから出てきたのか・・・ つまり3+9=11という特殊ケースかどうかに全然関係なく、そもそも足し算のやり方や繰り上がりをわかってなかった。
世の中のすべてのLLMは算数(加減乗除)をまだ習得していないと思われる
ChatGPT, Claude3のように「サービス化された」言語モデルは算数を正しく解けるが、これはサービスの裏で入力をPythonやそれに類するプログラムに変換して実行する仕組みが動いているためと考えて良い(検証記事はまたいつか書きます)
ところが、ChatGPTのような「サービス化された」LLMにおける、プログラムへの変換能力には凄まじいものがあります。問題文から非常に正確で適切なプログラムを作ってみせます。これがハイレベルな数学が解ける理由ではないかと。
算数はわかってないのにプログラムへの翻訳はできる。
これはTransformersがもともと高精度な機械翻訳を目指して考案されたためというのと関係ある気がします。
では、LLMはなぜ算数がわからないのか?
その答えを模索した本がコチラです!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?