ChatGPT o1 pro modeに東大理系数学解かせてみた
2024年12月5日に、OpenAIからChatGPT Proが発表され、大きな話題となりました。
特に衝撃的だったのは、これまでo1-previewとして提供されていた生成モデルをさらにパワーアップしたo1、o1pro modeが提供されたことです。既に人間の脳に匹敵、あるいは凌駕する可能性まであるとか。
ChatGPT Proは$200/月で利用できるようです。早速登録して使ってみました。
東大入試数学を解いてもらおう
Proを契約すると、いつものメニューの中にo1 pro modeが出現します。
早速何かを推論してもらいましょう。Xで流れてきたツイートによると、o1proは数理的推論能力に非常に優れており、大学入試数学も軽々解いてしまうとか。
自分は東京大学理系の卒業生ですが、o1proが解けてしまうならば自分のアイデンティティが崩壊する可能性があります。早速検証してみましょう。
昔の入試問題だと学習されているかもしれないので、2024年東大理系の数学を解かせてみます。
第1問
(https://www.u-tokyo.ac.jp/content/400239118.pdf より引用)
生成結果
以下は与えられた条件 (i), (ii), (iii) をすべて満たす点 P=(x,y,0) の範囲を求める一連の計算過程です。
問題設定の確認
空間内に点 A=(0, -1, 1) と原点 O=(0,0,0) がある。
xy 平面上の点 P=(x,y,0) に対して、以下の条件を課す:
(i) P は原点 O と異なる。
(ii) ∠AOP ≥ (2/3)π
(iii) ∠OAP ≤ π/6
ここで、∠AOP は点 O を頂点とする角度で、OA と OP のなす角度。
∠OAP は点 A を頂点とする角度で、AO と AP のなす角度である。
(ii) の条件の解析: ∠AOP ≥ 120°
ベクトルを用いて角度条件を表す。
O を基準とすると、
OA ベクトル: OA = A - O = (0, -1, 1)
OP ベクトル: OP = P - O = (x, y, 0) = (x, y, 0)
∠AOP は OA と OP のなす角。
cos(∠AOP) = (OA・OP) / (|OA||OP|)
まず内積を求める:
OA・OP = (0)*x + (-1)*y + (1)*0 = -y
ベクトルの長さ:
|OA| = √(0² + (-1)² + 1²) = √2
|OP| = √(x² + y²)
よって
cos(∠AOP) = (-y) / (√2 * √(x² + y²))
(ii) の条件は ∠AOP ≥ 2π/3 = 120° である。
cos(120°) = -1/2 より、
cos(∠AOP) ≤ -1/2
すなわち
(-y) / (√2 * √(x² + y²)) ≤ -1/2
両辺にマイナスをかけて不等号向きを変える:
y / (√2 * √(x² + y²)) ≥ 1/2
両辺に正の量 √2 * √(x² + y²) をかけると:
y ≥ (1/2)*√2 * √(x² + y²)
√2/2 = 1/√2 なので
y ≥ (1/√2)*√(x² + y²)
両辺を2乗する:
y² ≥ (x² + y²)/2
2y² ≥ x² + y²
y² ≥ x²
ここで y²≥x² が成立するには、|y|≥|x| が必要。さらに、y/(…)=正の値になるには y ≥ 0 でなければならない。(もし y<0 なら左辺は負か0になり、1/2以上にはならない。) よって
y ≥ |x|
(ii)より導かれる条件は「y ≥ |x| かつ y≥0」である。
つまり xy 平面上で原点を頂点として「y軸方向に開いた二等角の領域」、具体的には y 軸方向上向きに伸びる領域(y≥|x|)である。
(iii) の条件の解析: ∠OAP ≤ π/6 (30°)
次に∠OAP を考える。
頂点は A であるから、A を基準にベクトルを考える。
A=(0,-1,1)、O=(0,0,0)、P=(x,y,0)
AO = O - A = (0 - 0, 0 - (-1), 0 - 1) = (0, 1, -1)
AP = P - A = (x - 0, y - (-1), 0 - 1) = (x, y+1, -1)
cos(∠OAP) = (AO・AP)/(|AO||AP|)
内積:
AO・AP = (0)x + (1)(y+1) + (-1)*(-1) = y+1+1 = y+2
長さ:
|AO| = √(0² + 1² + (-1)²) = √2
|AP| = √(x² + (y+1)² + (-1)²) = √(x² + (y+1)² +1)
よって
cos(∠OAP) = (y+2)/(√2 * √(x²+(y+1)²+1))
(iii)の条件:∠OAP ≤ π/6
cos(π/6) = √3/2
よって
(y+2)/(√2 * √(x²+(y+1)²+1)) ≥ √3/2
両辺に √2 をかける:
(y+2)/√(x²+(y+1)²+1) ≥ √3/2 * √2 = √(3/2)*√2 = √(3/2) * (√2) = √3 で計算ミス無いようにする。
ここは慎重に:
√3/2 × √2 = (√3 × √2)/2 = √(3×2)/2 = √6/2 = √(3/2)
もう一度やり直すと、
√3/2 × √2 = (√3 × √2)/2 = √6/2
しかし √(3/2) ≈ 1.2247…、√6/2 ≈ 1.2247…
結局同値なので正しくは:
(√3/2)*√2 = √(3/2).
(確認:3/2=1.5、√1.5 ≈1.2247、√6/2 =√3 ≈1.732/√2=1.2247同値)
よって
(y+2)/√(x²+(y+1)²+1) ≥ √(3/2)
2乗して:
(y+2)²/(x²+(y+1)²+1) ≥ 3/2
(y+2)² ≥ (3/2)[x²+(y+1)²+1]
両辺2倍:
2(y+2)² ≥ 3[x²+(y+1)²+1]
(y+2)² = y² +4y +4
よって左辺:
2(y² +4y +4) = 2y² +8y +8
右辺:
3[x²+(y+1)²+1]
(y+1)² = y²+2y+1 なので
x²+(y+1)²+1 = x² + (y²+2y+1) +1 = x² + y² +2y +2
よって右辺:
3(x² + y² +2y +2) = 3x² +3y² +6y +6
不等式は:
2y² +8y +8 ≥ 3x² +3y² +6y +6
両辺移項:
0 ≥ 3x² +3y² +6y +6 - (2y² +8y +8)
0 ≥ 3x² +(3y² -2y²) + (6y -8y) + (6 -8)
0 ≥ 3x² + y² -2y -2
よって
3x² + y² -2y -2 ≤0
y² -2y を completing the square する:
y² -2y = (y-1)² -1
代入すると:
3x² + (y-1)² -1 -2 ≤0
3x² + (y-1)² -3 ≤0
3x² + (y-1)² ≤3
両辺3で割ると:
x² + (y-1)²/3 ≤1
これは中心(0,1)、y方向に長い楕円である。
つまり (iii) の条件は、点 P が楕円
x² + ((y-1)²)/3 ≤1
の内部または境界上にあることを意味する。
条件の統合:
(i) P≠O
(ii) y ≥ |x| かつ y≥0
(iii) x² + (y-1)²/3 ≤1
よって、P がとりうる範囲は、
原点以外
楕円 x² + (y-1)²/3 ≤1 の内部(および境界)
上記楕円領域の中で、y≥|x| (つまり y≥0 かつ y が x 軸方向に対して 45°線を上回る領域)
をすべて満たす点の集合となる。
図示すれば、xy 平面上で中心が (0,1) の楕円内部を考え、その中から原点を含まない、かつ y≥|x| の「上向きのV字領域」との共通部分が答えとなる。
まとめ:
P は xy 平面上で、
y ≥ |x| かつ
(x,y) が楕円 x² + ((y-1)²)/3 ≤1 の内部または境界に属し、
P ≠ O(0,0)
を満たす範囲である。
これが求める P のとりうる領域である。
う、うーんすごい。正解です。
途中で自ら慎重に計算したり、計算ミスに気をつけたりするところはこれまでの生成AIにない特徴とも言えます。
もちろん、この生成物がそのまま解答用紙に書けるわけではありませんが、最終的な答えは完璧に正解です。正直、ビビりました
ちなみに、プロンプトは超シンプルですし、書き起こすのが面倒だったので問題をスクリーンショットで貼り付けただけです。1分45秒で正答されました。
第2問
まぐれかもしれないので、もう1問やらせてみます。
より緻密な数値計算が必要そうです。
生成結果
以下は問題の解法過程と解答です。
**問題文要約**
与えられた関数
\[ f(x) = \int_0^1 \frac{|t - x|}{1+t^2} \, dt \quad (0 \le x \le 1) \]
について、
(1) 0<α<π/4 を満たす実数 α で、f'(tan α)=0 を与えるものを求めよ。
(2) (1)で求めた α に対して tan α の値を求めよ。
(3) f(x) の x∈[0,1] における最大値と最小値を求めよ。必要ならば 0.69<log 2<0.7 を用いてよい。
---
**(1) の解法**
まず微分 f'(x) を求める。
|t-x| の定義により、0 ≤ x ≤ 1 のとき、t<x なら |t-x|=x-t、t>x なら |t-x|=t-x であるから、
\[ f(x)=\int_0^x \frac{x-t}{1+t^2}dt + \int_x^1 \frac{t-x}{1+t^2}dt. \]
f'(x)は積分の分割点 x での影響を考えながら微分を行う。より簡便な方法は、x に関して直接微分すること。|t-x|の x 微分は以下になる。
- t<x のとき、|t-x|=x-t より d/dx(x-t)=1
- t>x のとき、|t-x|=t-x より d/dx(t-x)=-1
よって
\[ f'(x)=\int_0^x \frac{1}{1+t^2} dt + \int_x^1 \frac{-1}{1+t^2}dt. \]
これは分解すると、
\[ f'(x)=\left[\arctan(t)\right]_0^x - \left[\arctan(t)\right]_x^1 \]
\[ = (\arctan(x)-\arctan(0)) - (\arctan(1)-\arctan(x)) \]
\[ = \arctan(x) - \left(\frac{\pi}{4}-\arctan(x)\right) \]
\[ = \arctan(x)-\frac{\pi}{4}+\arctan(x) \]
\[ = 2\arctan(x)-\frac{\pi}{4}. \]
従って
\[ f'(x)=2\arctan(x)-\frac{\pi}{4}. \]
これより f'(tan α)=0 を満たすには、
\[ 2\arctan(\tan \alpha)-\frac{\pi}{4}=0. \]
\(\arctan(\tan \alpha)=\alpha\) (ここで 0<α<π/4 より単調領域内で問題なし)
\[ 2\alpha -\frac{\pi}{4}=0 \]
\[ 2\alpha=\frac{\pi}{4} \]
\[ \alpha=\frac{\pi}{8}. \]
(1)の答え:\(\alpha=\frac{\pi}{8}\)
---
**(2) の解法**
\(\alpha=\frac{\pi}{8}\) のとき、\(\tan\alpha=\tan(\pi/8)\) を求める。
\(\tan(\pi/8)\) は有名な半角公式から求められる。
\(\tan(\pi/8)=\sqrt{2}-1\) が知られている(22.5°の正接)。
(半角公式や \(\tan(22.5^\circ)=\tan(45^\circ/2)\) より導くことも可能)
(2)の答え:\(\tan(\pi/8)=\sqrt{2}-1\)
---
**(3) の解法**
0 ≤ x ≤ 1 で f(x) の最大・最小を求める。
すでに f'(x)=2\arctan(x)-\frac{\pi}{4} とわかった。
\(\arctan(x)\) は単調増加関数なので、f'(x)は x=0 のとき負、x=1 のとき正になる。
f'(0)=2\arctan(0)-π/4=-π/4<0、f'(1)=2\arctan(1)-π/4=2*(π/4)-π/4= π/4>0。
この範囲(0,1)で f'(x) は一度 0 になる点があるが、それが x=\(\tan(\pi/8)\) である。f'(x)がマイナスからプラスへ変わるため、x=\(\tan(\pi/8)\) で f(x) は極小値をとる。
したがって最小値は x=tan(π/8) にある。
次に端点での値を計算し、最大値を判定する。
- f(0):
\[ f(0)=\int_0^1 \frac{|t-0|}{1+t^2} dt =\int_0^1 \frac{t}{1+t^2}dt \]
\[ =\frac{1}{2}\log(1+t^2)\big|_0^1=\frac{1}{2}\log(2). \]
- f(1):
\[ f(1)=\int_0^1 \frac{|t-1|}{1+t^2} dt =\int_0^1 \frac{1-t}{1+t^2}dt \]
\[ =\int_0^1 \frac{1}{1+t^2}dt - \int_0^1 \frac{t}{1+t^2}dt \]
\[ =\arctan(t)\big|_0^1 - \frac{1}{2}\log(1+t^2)\big|_0^1 \]
\[ =\frac{\pi}{4}-\frac{1}{2}\log(2). \]
次に最小値 f(tan(π/8)) を求める。
x=\(\tan(\pi/8)=\sqrt{2}-1\) のとき、f(x) を求める方法はいくつかあるが、ここでは結果のみ示す。(詳細計算は省略)
計算の結果、
\[ f(\tan(\pi/8))=\log\frac{\sqrt{2}+1}{2} \]
となることがわかる。
数値近似:\(\sqrt{2}\approx1.4142\)、\(\sqrt{2}+1\approx2.4142\)、\(\frac{\sqrt{2}+1}{2}\approx1.2071\)、\(\log(1.2071)\approx0.188\)
f(0)=0.5*log(2)≈0.3466、f(1)=\frac{\pi}{4}-0.5\log(2)≈0.4389 より、
f(tan(π/8))≈0.188 が最小、f(1)が最大である。
よって、
- 最小値は x=tan(π/8) のとき \(\log\frac{\sqrt{2}+1}{2}\)
- 最大値は x=1 のとき \(\frac{\pi}{4}-\frac{1}{2}\log 2\)
---
**まとめ**
(1) \(\alpha=\frac{\pi}{8}\)
(2) \(\tan\alpha=\sqrt{2}-1\)
(3) 最小値:\(f(\tan(\pi/8))=\log\frac{\sqrt{2}+1}{2}\)
最大値:\(f(1)=\frac{\pi}{4}-\frac{1}{2}\log 2\)
以上が求める解答である。
なんとなんと、こちらも正解です。回答にかかった時間は5分46秒でした。
ショックが強すぎて検証はここで打ち切ります。好評であれば第3問以降もやります。
AIは東大理系に合格できる
まだ数学の一部しか試していませんが、ここまでの感触からしてついにAIが東大に合格できるようになったと思います。
そういえば昔、「東ロボくん」という、まさにAIで東大入試に合格させるプロジェクトがありましたが、何らかのブレイクスルーがない限り不可能として凍結されたことを思い出しました。
今、まさに私たちはそのブレイクスルーの最中にいます。
Discussion