O1-Previewに自作東工大模試を解かせてみた

# 始めに

　お久しぶりです．東工大模試作問サークルを立ち上げたソリングと申します．

　 先日の金曜日，OpenAI社が開発したAIであるO1が，数学や物理学など様々な分野で博士課程並みのパフォーマンスを発揮したという発表がありました．

  https://www.jiji.com/jc/article?k=2024091300197&g=int

  　今までは無料のChatGPTを使用していましたが，この1件で有料版が気になり課金してしまいました．本記事では，O1-Previewに自作の東工大模試を解かせ，その実力を検証していきたいと思います．

   今回解かせる模試は，2021/8/25に公開した第6回ソリング模試とします．

   https://x.com/TubeSoling/status/1430415906149072899

   https://x.com/TubeSoling/status/1434175375383228424
   
   この記事を読む上では事前に解かなくても大丈夫ですが，気になる方は事前に目を通しておくと良いでしょう．

# 前提

問題を与える際は，こちらのプロンプトを少し改変したものに従って与えるものとします．長くなるので，興味がある方は開いてご確認ください．

https://metaskilling.blog/chatgpt-o1-toudai-math/

<details><summary>プロンプト</summary>

あなたは、国際数学オリンピックの金メダリストです。
以下の数学の問題の解答を作成してください。ただし、解答作成の際は、以下の点に留意してください。
(1)この問題は、日本の高校生に対して出題される問題です。したがって、解答には高校で習う程度の数学の知識のみを用いて解答してください。積分や関数の値は、log、In、exp、sqrt、sin、cosなどを用いて、解析的な形で必ず表現し、数値積分は用いないでください。

(2)この問題の解答には、基本的にプログラミングを使用せず、数学的な論理展開・式変形に基づく議論に基づいて、解答を作成してください。

(3)図を描画する問題は、matplotlibを用いて、解答の図も作成してください。

(4)「全て求めよ。」という指示の問題に対しては、考え得る答えの組以外に、ほかの組み合わせが存在しないということも、数学的な議論に基づいて、証明してください。同様に、「最大値を求めよ」と言った形式の問題は、最大値を求めるだけではなく、実際にそれが最大値であることも数学的な議論証明してください。

(5)「であることを示せ。」という指示の問題は、証明問題です。したがって、いくつかの具体的な数値で成り立つことを証明するだけでなく、数学的な議論に基づいて、題意を満たす全ての場合について、命題が成立することを証明してください。

(6) 「f(n)を求めよ」という形式の問題は、いくつかの場合でf(n)の値を求めるのではなく、f(n)をnについての閉じた式で表してください。

(7) 数式の部分は、$f(x)$のようにその左右を必ず$$で囲んでください。
以上の指示に基づいて、以下の問題の解答を作成してください:
#問題
ここに問題を書く．
#解答
</details>

# 大問1
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/bec904b0-6072-db62-204f-f29c62799102.png)


<details><summary>与えたプロンプト</summary>
あなたは、国際数学オリンピックの金メダリストです。
以下の数学の問題の解答を作成してください。ただし、解答作成の際は、以下の点に留意してください。
(1)この問題は、日本の高校生に対して出題される問題です。したがって、解答には高校で習う程度の数学の知識のみを用いて解答してください。積分や関数の値は、log、In、exp、sqrt、sin、cosなどを用いて、解析的な形で必ず表現し、数値積分は用いないでください。

(2)この問題の解答には、基本的にプログラミングを使用せず、数学的な論理展開・式変形に基づく議論に基づいて、解答を作成してください。ただし、数式の計算や、図を描画する際には、必ずPythonのプログラミングを使用して、計算ミスが起こらないように注意してください。

(3)図を描画する問題は、matplotlibを用いて、解答の図も作成してください。

(4)「全て求めよ。」という指示の問題に対しては、考え得る答えの組以外に、ほかの組み合わせが存在しないということも、数学的な議論に基づいて、証明してください。同様に、「最大値を求めよ」と言った形式の問題は、最大値を求めるだけではなく、実際にそれが最大値であることも証明してください。

(5)「であることを示せ。」という指示の問題は、証明問題です。したがって、いくつかの具体的な数値で成り立つことを証明するだけでなく、数学的な議論に基づいて、題意を満たす全ての場合について、命題が成立することを証明してください。

(6) 「f(n)を求めよ」という形式の問題は、いくつかの場合でf(n)の値を求めるのではなく、f(n)をnについての閉じた式で表してください。

(7) 数式の部分は、$f(x)$のようにその左右を必ず$$で囲んでください。



以上の指示に基づいて、以下の問題の解答を作成してください:
#問題
正の整数$n$に対して$f_n(x)=x^n-e^{-x}$とし，
$$I_n = \int^1_0 |f_n(x)|dx$$
とおく．以下の問いに答えよ．
\begin{enumerate}[(1)]
    \item $x$についての方程式，$f_n(x)=0$の$0<x<1$における実数解はただひとつであることを示せ．\\
    \item 次の不等式を証明せよ．\\
    $$f_n\Big(1-\frac{1}{n}\Big) < 0$$
    \item 極限値，$\displaystyle \lim_{n \to \infty} I_n$を求めよ．
\end{enumerate}

#解答

</details>

## ChatGPTの出力 (49秒)

#解答

**(1)**

まず、$f_n(x) = x^n - e^{-x}$について、$0 < x < 1$での実数解を考えます。

$f_n(x)$は$[0, 1]$上で連続な関数です。

- $x \to 0^+$のとき、$f_n(x) \to 0 - e^{-0} = -1$。
- $x = 1$のとき、$f_n(1) = 1^n - e^{-1} = 1 - \dfrac{1}{e} > 0$。

したがって、$f_n(0^+) = -1$、$f_n(1) > 0$となり、$f_n(x)$は$0 < x < 1$で負から正へと変化します。よって、中間値の定理より、$f_n(x) = 0$は$0 < x < 1$に少なくとも一つの実数解を持ちます。

次に、$f_n(x)$が$0 < x < 1$で単調増加であることを示します。$f_n(x)$の導関数は

$$
f_n'(x) = n x^{n-1} + e^{-x} > 0
$$

です。なぜなら、$n x^{n-1} > 0$（$x > 0$、$n \geq 1$より）、$e^{-x} > 0$だからです。したがって、$f_n(x)$は$0 < x < 1$で単調増加関数であり、実数解はただ一つであることが示されました。

---

**(2)**

$x = 1 - \dfrac{1}{n}$における$f_n(x)$の値を考えます。

まず、$x$を代入すると

$$
f_n\left(1 - \dfrac{1}{n}\right) = \left(1 - \dfrac{1}{n}\right)^n - e^{- \left(1 - \frac{1}{n}\right)}.
$$

ここで、指数関数と対数の性質を利用して評価します。

1. 左辺の項を考えます。

   $$
   \left(1 - \dfrac{1}{n}\right)^n = e^{n \ln \left(1 - \frac{1}{n}\right)}.
   $$

   テイラー展開を用いて、

   $$
   \ln \left(1 - \dfrac{1}{n}\right) = -\dfrac{1}{n} - \dfrac{1}{2n^2} - \dfrac{1}{3n^3} - \dots < -\dfrac{1}{n}.
   $$

   したがって、

   $$
   n \ln \left(1 - \dfrac{1}{n}\right) < -1.
   $$

   よって、

   $$
   \left(1 - \dfrac{1}{n}\right)^n < e^{-1}.
   $$

2. 右辺の項を考えます。

   $$
   e^{- \left(1 - \frac{1}{n}\right)} = e^{-1 + \frac{1}{n}} = e^{-1} e^{\frac{1}{n}} > e^{-1}.
   $$

3. 比較すると、

   $$
   \left(1 - \dfrac{1}{n}\right)^n < e^{-1} < e^{- \left(1 - \frac{1}{n}\right)}.
   $$

したがって、

$$
f_n\left(1 - \dfrac{1}{n}\right) = \left(1 - \dfrac{1}{n}\right)^n - e^{- \left(1 - \frac{1}{n}\right)} < 0.
$$

---

**(3)**

$\displaystyle \lim_{n \to \infty} I_n$を求めます。

まず、$f_n(x) = x^n - e^{-x}$の挙動を調べます。

- $0 \leq x < 1$では、$x^n \to 0$（$n \to \infty$のとき）なので、

  $$
  f_n(x) \to -e^{-x} < 0.
  $$

- $x = 1$では、$x^n = 1$より、

  $$
  f_n(1) = 1 - e^{-1} > 0.
  $$

これより、$n \to \infty$のとき、$f_n(x)$は$x = 1$を除く$[0, 1)$で負の値をとります。

$I_n$は$f_n(x)$の絶対値の積分なので、

$$
\lim_{n \to \infty} I_n = \int_0^1 |f_n(x)| dx = \int_0^1 e^{-x} dx = \left[ -e^{-x} \right]_0^1 = -e^{-1} + e^{0} = 1 - \dfrac{1}{e}.
$$

よって、

$$
\lim_{n \to \infty} I_n = 1 - \dfrac{1}{e}.
$$

---

**（補足）Pythonによる計算確認**

```python
import numpy as np
import matplotlib.pyplot as plt

n_values = [1, 5, 10, 50, 100]
x = np.linspace(0, 1, 400)

for n in n_values:
    f_n = x**n - np.exp(-x)
    plt.plot(x, f_n, label=f'n={n}')

plt.axhline(0, color='black', linewidth=0.5)
plt.xlabel('x')
plt.ylabel('$f_n(x)$')
plt.title('グラフ：$f_n(x) = x^n - e^{-x}$')
plt.legend()
plt.show()
```

**図1：$f_n(x)$のグラフ**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/215f53fe-90ec-20b6-efa1-280a23abf070.png)


このグラフからも、$n$が大きくなると$0 < x < 1$で$f_n(x) < 0$となり、$x = 1$で$f_n(1) > 0$となることが視覚的に確認できます。

## 採点結果

**合計：50/60**

(1) 15点．論理的に問題はなく，完璧な解答です．

(2) 20点．テイラー展開は厳密な意味での高校範囲ではありませんが，本質的には高校範囲で導出できるため，「高校で習う程度の数学の知識」を逸脱しておらず，プロンプトに従っていると判断しました．

(3) 15点．解答を読む限り，極限と積分を交換して解答しているようですが，これは無条件に成り立つわけではなく，「n, xに依存しない定数Mを用いて，$|f_n(x)|<M$」と評価できる場合など，何かしら条件が必要です．結論は正しいことを踏まえて15点としましたが，実際の入試ではもう少し原点をくらうかもしれません（入試は相対評価なので，実際この辺の採点がどうなるかは不明です）．


# 大問2
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/bec904b0-6072-db62-204f-f29c62799102.png)


<details><summary>与えたプロンプト</summary>
あなたは、国際数学オリンピックの金メダリストです。
以下の数学の問題の解答を作成してください。ただし、解答作成の際は、以下の点に留意してください。
(1)この問題は、日本の高校生に対して出題される問題です。したがって、解答には高校で習う程度の数学の知識のみを用いて解答してください。積分や関数の値は、log、In、exp、sqrt、sin、cosなどを用いて、解析的な形で必ず表現し、数値積分は用いないでください。

(2)この問題の解答には、基本的にプログラミングを使用せず、数学的な論理展開・式変形に基づく議論に基づいて、解答を作成してください。ただし、数式の計算や、図を描画する際には、必ずPythonのプログラミングを使用して、計算ミスが起こらないように注意してください。

(3)図を描画する問題は、matplotlibを用いて、解答の図も作成してください。

(4)「全て求めよ。」という指示の問題に対しては、考え得る答えの組以外に、ほかの組み合わせが存在しないということも、数学的な議論に基づいて、証明してください。同様に、「最大値を求めよ」と言った形式の問題は、最大値を求めるだけではなく、実際にそれが最大値であることも証明してください。

(5)「であることを示せ。」という指示の問題は、証明問題です。したがって、いくつかの具体的な数値で成り立つことを証明するだけでなく、数学的な議論に基づいて、題意を満たす全ての場合について、命題が成立することを証明してください。

(6) 「f(n)を求めよ」という形式の問題は、いくつかの場合でf(n)の値を求めるのではなく、f(n)をnについての閉じた式で表してください。

(7) 数式の部分は、$f(x)$のようにその左右を必ず$$で囲んでください。



以上の指示に基づいて、以下の問題の解答を作成してください:
#問題
目の前に1つの球と3色のコップがある．1から6までの目がすべて等確率で出るさいころを用意し，さいころを振った結果によって以下のように球を動かす．

\begin{enumerate}
    \item さいころを振って1, 2, 3の目が出た場合，球を青いコップに移す．ただし，すでに球が青いコップに入っていた場合は，球を緑のコップに移す．
    \item さいころを振って4, 5の目が出た場合，球を赤いコップに移す．ただし，すでに球が赤いコップに入っていた場合は，球を青いコップに移す．
    \item さいころを振って6の目が出た場合，球を緑のコップに移す．ただし，すでに球が緑のコップに入っていた場合は，球を赤いコップに移す．
\end{enumerate}

最初に赤いコップに球を入れた. このとき，ここから$n$回サイコロを振った後に赤いコップに球が入っている確率$r_n$を求めよ．

#解答

</details>

## ChatGPTの出力（118秒）

#解答

**問題の概要**

1つの球と赤・青・緑の3色のコップがあります。球は最初、赤いコップに入っています。サイコロを振り、出た目によって以下のように球を移動させます。

1. **目が1, 2, 3の場合**：球を青いコップに移します。ただし、既に球が青いコップに入っている場合は緑のコップに移します。
2. **目が4, 5の場合**：球を赤いコップに移します。ただし、既に球が赤いコップに入っている場合は青いコップに移します。
3. **目が6の場合**：球を緑のコップに移します。ただし、既に球が緑のコップに入っている場合は赤いコップに移します。

この操作を$n$回繰り返した後に、球が赤いコップに入っている確率を$r_n$とします。$r_n$を求めます。

---

**解法**

この問題は、状態が「赤(R)」「青(B)」「緑(G)」の3つからなる**マルコフ過程**としてモデル化できます。各状態間の遷移確率を求め、初期状態から$n$回の遷移後に再び赤いコップに球がある確率$r_n$を計算します。

**1. 遷移確率の設定**

まず、各状態から他の状態への遷移確率を求めます。

- **状態R（赤いコップ）からの遷移**

  - **目が1, 2, 3（確率1/2）**：青いコップへ移動。
  - **目が4, 5（確率1/3）**：既に赤いコップにいるので、青いコップへ移動。
  - **目が6（確率1/6）**：緑のコップへ移動。

  したがって、

  $$
  P_{R \to B} = \dfrac{1}{2} + \dfrac{1}{3} = \dfrac{5}{6}, \quad P_{R \to G} = \dfrac{1}{6}.
  $$

- **状態B（青いコップ）からの遷移**

  - **目が1, 2, 3（確率1/2）**：既に青いコップにいるので、緑のコップへ移動。
  - **目が4, 5（確率1/3）**：赤いコップへ移動。
  - **目が6（確率1/6）**：緑のコップへ移動。

  したがって、

  $$
  P_{B \to G} = \dfrac{1}{2} + \dfrac{1}{6} = \dfrac{2}{3}, \quad P_{B \to R} = \dfrac{1}{3}.
  $$

- **状態G（緑のコップ）からの遷移**

  - **目が1, 2, 3（確率1/2）**：青いコップへ移動。
  - **目が4, 5（確率1/3）**：赤いコップへ移動。
  - **目が6（確率1/6）**：既に緑のコップにいるので、赤いコップへ移動。

  したがって、

  $$
  P_{G \to B} = \dfrac{1}{2}, \quad P_{G \to R} = \dfrac{1}{3} + \dfrac{1}{6} = \dfrac{1}{2}.
  $$

**2. 遷移行列の構築**

状態を$R$, $B$, $G$とし、遷移行列$T$を以下のように定義します。

$$
T = \begin{pmatrix}
P_{R \to R} & P_{R \to B} & P_{R \to G} \\
P_{B \to R} & P_{B \to B} & P_{B \to G} \\
P_{G \to R} & P_{G \to B} & P_{G \to G} \\
\end{pmatrix}
= \begin{pmatrix}
0 & \dfrac{5}{6} & \dfrac{1}{6} \\
\dfrac{1}{3} & 0 & \dfrac{2}{3} \\
\dfrac{1}{2} & \dfrac{1}{2} & 0 \\
\end{pmatrix}
$$

**3. 初期状態のベクトル**

球は最初、赤いコップにあるので、初期状態ベクトル$\mathbf{v}_0$は

$$
\mathbf{v}_0 = \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix}
$$

です。

**4. $n$回後の状態ベクトルの計算**

$n$回目のサイコロを振った後の状態ベクトル$\mathbf{v}_n$は、

$$
\mathbf{v}_n = T^n \mathbf{v}_0
$$

となります。したがって、$r_n$は$\mathbf{v}_n$の最初の成分、すなわち赤いコップに球がある確率です。

**5. 固有値と定常分布の計算**

遷移行列$T$の固有値と定常分布を求めます。

まず、$T$の固有値を$\lambda$とし、固有ベクトルを$\mathbf{u}$とします。定常分布$\mathbf{\pi}$は$T$の固有値$\lambda = 1$に対応する固有ベクトルであり、$\mathbf{\pi}$は以下を満たします。

$$
T \mathbf{\pi} = \mathbf{\pi}, \quad \pi_R + \pi_B + \pi_G = 1
$$

**（a）定常分布の求解**

以下の連立方程式を解きます。

1. $\pi_R = \dfrac{1}{3} \pi_B + \dfrac{1}{2} \pi_G$
2. $\pi_B = \dfrac{5}{6} \pi_R + \dfrac{1}{2} \pi_G$
3. $\pi_G = 1 - \pi_R - \pi_B$

これを解くと、

- $\pi_R = \dfrac{30}{79}$
- $\pi_B = \dfrac{33}{79}$
- $\pi_G = \dfrac{16}{79}$

となります。

**6. 結論**

以上より、$n$が大きくなると$r_n$は$\dfrac{30}{79}$に収束します。しかし、$r_n$を$n$の式で厳密に表すことは高校数学の範囲では困難です。

**したがって、$r_n$は$n$が増加するにつれて$\dfrac{30}{79}$に近づきます。**

---

**補足：計算の確認**

Pythonを用いて、初期状態から$n$回後の$r_n$を数値的に計算し、収束を確認します。

```python
import numpy as np
import matplotlib.pyplot as plt

# 遷移行列
T = np.array([
    [0, 5/6, 1/6],
    [1/3, 0, 2/3],
    [1/2, 1/2, 0]
])

# 初期状態
v0 = np.array([1, 0, 0])

# nの範囲
n_values = range(1, 21)
r_values = []

v = v0.copy()
for n in n_values:
    v = T @ v  # 行列の積
    r_values.append(v[0])

# 理論値との比較
pi_R = 30/79
theoretical = [pi_R for _ in n_values]

# グラフの描画
plt.plot(n_values, r_values, label='数値計算による$r_n$')
plt.hlines(pi_R, xmin=1, xmax=20, colors='r', linestyles='dashed', label='$\\pi_R = \\dfrac{30}{79}$')
plt.xlabel('$n$（サイコロを振った回数）')
plt.ylabel('$r_n$（赤いコップに球がある確率）')
plt.title('赤いコップに球がある確率の推移')
plt.legend()
plt.grid(True)
plt.show()
```

**図：$r_n$の推移**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/8e2fdb65-d099-2d9f-0f54-6b637ae12230.png)


このグラフから、$r_n$が$\dfrac{30}{79}$に収束していく様子が確認できます。

---

**答え**

$$
r_n = \dfrac{30}{79} \quad (\text{ただし、} n \to \infty)
$$

すなわち、$n$回サイコロを振った後に球が赤いコップに入っている確率$r_n$は、$n$が大きくなるにつれて$\dfrac{30}{79}$に近づきます。



## 採点結果

**合計：10/60**

漸化式の立式までは問題ありませんが，その後の計算を諦めてしまっています．また，残念ながら極限値も間違っています（正しくは$\dfrac{24}{83}$）．結論として得られる数式が複雑なため計算を放棄してしまうのは仕方ないかもしれません...

# 大問3
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/f5201d77-d060-399f-da54-2ddeb9213c41.png)

<details><summary>与えたプロンプト</summary>
あなたは、国際数学オリンピックの金メダリストです。
以下の数学の問題の解答を作成してください。ただし、解答作成の際は、以下の点に留意してください。
(1)この問題は、日本の高校生に対して出題される問題です。したがって、解答には高校で習う程度の数学の知識のみを用いて解答してください。積分や関数の値は、log、In、exp、sqrt、sin、cosなどを用いて、解析的な形で必ず表現し、数値積分は用いないでください。

(2)この問題の解答には、基本的にプログラミングを使用せず、数学的な論理展開・式変形に基づく議論に基づいて、解答を作成してください。ただし、数式の計算や、図を描画する際には、必ずPythonのプログラミングを使用して、計算ミスが起こらないように注意してください。

(3)図を描画する問題は、matplotlibを用いて、解答の図も作成してください。

(4)「全て求めよ。」という指示の問題に対しては、考え得る答えの組以外に、ほかの組み合わせが存在しないということも、数学的な議論に基づいて、証明してください。同様に、「最大値を求めよ」と言った形式の問題は、最大値を求めるだけではなく、実際にそれが最大値であることも証明してください。

(5)「であることを示せ。」という指示の問題は、証明問題です。したがって、いくつかの具体的な数値で成り立つことを証明するだけでなく、数学的な議論に基づいて、題意を満たす全ての場合について、命題が成立することを証明してください。

(6) 「f(n)を求めよ」という形式の問題は、いくつかの場合でf(n)の値を求めるのではなく、f(n)をnについての閉じた式で表してください。

(7) 数式の部分は、$f(x)$のようにその左右を必ず$$で囲んでください。



以上の指示に基づいて、以下の問題の解答を作成してください:
#問題


4辺の長さが$1, 1, 1, x$である，円に内接する四角形$S$について以下の問いに答えよ．

\begin{enumerate}[(1)]
    \item $x$のとりうる値の範囲を求めよ．\\
    \item $x$が(1)で求めた範囲を動くとき，四角形$S$の面積$S(x)$の最大値を求めよ．
\end{enumerate}
 

#解答

</details>

## ChatGPTの出力（68秒）

**解答**

---

**(1)**

四辺の長さが $1, 1, 1, x$ である円に内接する四角形 $S$ を考えます。円に内接する四角形では、向かい合う角の和が $180^\circ$ になる性質があります。四角形の頂点を順に $A, B, C, D$ とし、辺の長さをそれぞれ $AB = 1, BC = 1, CD = 1, DA = x$ とします。

三角形 $ABC$ において、余弦定理より対角線 $AC$ の長さを求めます。

$$
AC^2 = AB^2 + BC^2 - 2 \cdot AB \cdot BC \cdot \cos \theta_B \\
AC^2 = 1^2 + 1^2 - 2 \cdot 1 \cdot 1 \cdot \cos \theta_B \\
AC^2 = 2 - 2\cos \theta_B
$$

同様に、三角形 $ADC$ において、

$$
AC^2 = AD^2 + DC^2 - 2 \cdot AD \cdot DC \cdot \cos \theta_D \\
AC^2 = x^2 + 1^2 - 2 \cdot x \cdot 1 \cdot \cos \theta_D \\
AC^2 = x^2 + 1 - 2x \cos \theta_D
$$

円に内接する四角形では、$\theta_B + \theta_D = 180^\circ$ であり、したがって $\cos \theta_D = -\cos \theta_B$ となります。

これらを連立して、

$$
2 - 2\cos \theta_B = x^2 + 1 - 2x (-\cos \theta_B) \\
2 - 2\cos \theta_B = x^2 + 1 + 2x \cos \theta_B
$$

整理すると、

$$
2 - x^2 -1 = 2\cos \theta_B (1 + x) \\
1 - x^2 = 2(1 + x)\cos \theta_B
$$

$\cos \theta_B$ の値は $-1 \leq \cos \theta_B \leq 1$ であるため、

$$
-1 \leq \frac{1 - x^2}{2(1 + x)} \leq 1
$$

この不等式を解くために、分母が正であることを確認します。$x > 0$ なので、$1 + x > 0$ です。

両辺に $2(1 + x)$ を掛けて、

**左側の不等式：**

$$
-2(1 + x) \leq 1 - x^2 \\
-2 - 2x \leq 1 - x^2 \\
x^2 - 2x -3 \leq 0 \\
(x - 3)(x + 1) \leq 0
$$

**右側の不等式：**

$$
1 - x^2 \leq 2(1 + x) \\
1 - x^2 \leq 2 + 2x \\
x^2 + 2x +1 \geq 0 \\
(x + 1)^2 \geq 0
$$

右側の不等式は常に成立します。したがって、左側の不等式 $(x - 3)(x + 1) \leq 0$ を解きます。

数直線上で考えると、

- $x = -1$ と $x = 3$ で符号が変わります。
- 不等式が成立するのは、$-1 \leq x \leq 3$ の範囲です。

しかし、辺の長さは正の値であるため、$x > 0$ です。したがって、

$$
0 < x \leq 3
$$

**答え：**

$$
0 < x \leq 3
$$

---

**(2)**

四角形 $S$ の面積 $S(x)$ を $x$ の関数として表し、最大値を求めます。

まず、半周長 $s$ を求めます。

$$
s = \frac{1 + 1 + 1 + x}{2} = \frac{3 + x}{2}
$$

次に、$S(x)$ をブラーマグプタの公式を用いて計算します。

$$
S(x) = \sqrt{(s - a)(s - b)(s - c)(s - d)} \\
= \sqrt{\left(s - 1\right)^3 \left(s - x\right)}
$$

$s - 1$ と $s - x$ を計算します。

$$
s - 1 = \frac{3 + x}{2} - 1 = \frac{1 + x}{2} \\
s - x = \frac{3 + x}{2} - x = \frac{3 - x}{2}
$$

したがって、

$$
S(x) = \sqrt{\left(\frac{1 + x}{2}\right)^3 \left(\frac{3 - x}{2}\right)} \\
= \frac{1}{4} \sqrt{(1 + x)^3 (3 - x)}
$$

この関数の最大値を求めます。$y = (1 + x)^3 (3 - x)$ と置きます。

$0 < x \leq 3$ の範囲で $y$ の最大値を探します。

$u = x + 1$ と置くと、$x = u - 1$ より、

$$
y = u^3 (3 - (u - 1)) = u^3 (4 - u)
$$

$u$ の範囲は $1 < u \leq 4$ です。

$y = u^3 (4 - u)$ の最大値を求めます。

**$y$ の増減を調べる：**

- $u = 1$ のとき、$y = 1^3 (4 - 1) = 3$
- $u = 2$ のとき、$y = 8 \times 2 = 16$
- $u = 3$ のとき、$y = 27 \times 1 = 27$
- $u = 4$ のとき、$y = 64 \times 0 = 0$

$y$ は $u = 3$ で最大値 $27$ をとります。したがって、$x = 2$ のときに面積が最大になります。

最大の面積は、

$$
S_{\text{max}} = \frac{1}{4} \sqrt{27} = \frac{1}{4} \times 3\sqrt{3} = \frac{3\sqrt{3}}{4}
$$

**答え：**

$$
S_{\text{max}} = \frac{3\sqrt{3}}{4}
$$

---

**（最大値であることの証明）**

$y = u^3 (4 - u)$ の形で表される関数は、$u$ の範囲 $1 < u \leq 4$ で $u = 3$ において最大値をとります。これは、$y$ が $u = 3$ まで増加し、その後減少することから明らかです。

したがって、面積 $S(x)$ は $x = 2$ のときに最大値 $\dfrac{3\sqrt{3}}{4}$ をとります。

---

**（グラフの描画）**

以下のコードを用いて、$S(x)$ のグラフを描画します。

```python
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0.01, 3, 300)
S_x = (1/4) * np.sqrt((1 + x)**3 * (3 - x))

plt.figure(figsize=(8, 6))
plt.plot(x, S_x, label='$S(x)$')
plt.title('四角形 $S$ の面積 $S(x)$ のグラフ')
plt.xlabel('$x$')
plt.ylabel('$S(x)$')
plt.legend()
plt.grid(True)
plt.show()
```

**グラフ：**


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/c7d5f33d-dda3-2d49-5a1d-0addf388642d.png)


このグラフからも、$x = 2$ のときに面積が最大であることが確認できます。

## 採点結果


**合計：40/60**

(1) 20点．問題なく完璧な解答です．

(2) 20点．$S(x)$を$x$の式で表したところまでは問題ありませんが，その後の処理が数学的な議論には基づいていないという問題点があります．結論は正しいですが，根拠不十分です．


# 大問4

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/46857f48-e09b-d3c2-59b9-a816cd853987.png)

<details><summary>与えたプロンプト</summary>
あなたは、国際数学オリンピックの金メダリストです。
以下の数学の問題の解答を作成してください。ただし、解答作成の際は、以下の点に留意してください。
(1)この問題は、日本の高校生に対して出題される問題です。したがって、解答には高校で習う程度の数学の知識のみを用いて解答してください。積分や関数の値は、log、In、exp、sqrt、sin、cosなどを用いて、解析的な形で必ず表現し、数値積分は用いないでください。

(2)この問題の解答には、基本的にプログラミングを使用せず、数学的な論理展開・式変形に基づく議論に基づいて、解答を作成してください。ただし、数式の計算や、図を描画する際には、必ずPythonのプログラミングを使用して、計算ミスが起こらないように注意してください。

(3)図を描画する問題は、matplotlibを用いて、解答の図も作成してください。

(4)「全て求めよ。」という指示の問題に対しては、考え得る答えの組以外に、ほかの組み合わせが存在しないということも、数学的な議論に基づいて、証明してください。同様に、「最大値を求めよ」と言った形式の問題は、最大値を求めるだけではなく、実際にそれが最大値であることも証明してください。

(5)「であることを示せ。」という指示の問題は、証明問題です。したがって、いくつかの具体的な数値で成り立つことを証明するだけでなく、数学的な議論に基づいて、題意を満たす全ての場合について、命題が成立することを証明してください。

(6) 「f(n)を求めよ」という形式の問題は、いくつかの場合でf(n)の値を求めるのではなく、f(n)をnについての閉じた式で表してください。

(7) 数式の部分は、$f(x)$のようにその左右を必ず$$で囲んでください。



以上の指示に基づいて、以下の問題の解答を作成してください:
#問題


座標平面上の16個の点からなる集合

$$S=\{ (x, y)\mid x, y \in \{1, 2, 3, 4 \} \}$$

に対して，$S$の中から4つ以上の相異なる要素を選んでできる部分集合$S'$について考える．このとき，以下の条件を満たすような部分集合$S'$の要素数の最大値を求めよ．

\begin{center}
【条件】$S'$のどの4つの要素を取り出しても，その4点が座標平面上の正方形・長方形の4頂点ではない
\end{center}

#解答

</details>

## ChatGPTの出力 (58秒)

#解答

**問題の概要**

平面上の点集合

$$
S = \{ (x, y) \mid x, y \in \{1, 2, 3, 4\} \}
$$

があります。$S$の中から$4$つ以上の点を選んでできる部分集合$S'$で、以下の条件を満たすものの要素数の最大値を求めます。

- **【条件】** $S'$のどの4つの点をとっても、それらが正方形または長方形の頂点にならない。

---

**解法**

この問題は、$S'$の要素数を最大化しつつ、$S'$内の任意の4点が長方形を形成しないようにすることです。以下、高校数学の範囲で論理的に解答します。

**1. 問題の整理**

- **長方形の条件**：長方形は、4つの頂点の$x$座標が2種類、$y$座標が2種類の場合に形成されます。つまり、$S'$から$x$座標が$a, b$、$y$座標が$c, d$（$a \neq b$, $c \neq d$）となる点$(a, c), (a, d), (b, c), (b, d)$を選ぶと長方形ができます。

- **目標**：$S$からできるだけ多くの点を選び、$S'$とし、その中で長方形を形成する組み合わせが存在しないようにする。

**2. 最大要素数の上限を見積もる**

まず、$S$の点の総数は$4 \times 4 = 16$点です。これらの点からできるだけ多く選びたいのですが、長方形を形成しないための制約があります。

- **列（$x$座標）ごとの選択**：

  列は$x = 1, 2, 3, 4$の4本があります。各列で選べる点の数を考えます。

- **行（$y$座標）ごとの選択**：

  行は$y = 1, 2, 3, 4$の4本があります。各行で選べる点の数を考えます。

**3. 最大要素数が8であることの証明**

**(A) 8点を選ぶ具体例**

まず、8点を選んで条件を満たす部分集合$S'$を構成します。

- **選択する点**：

  行と列の交差を考え、以下のように点を選びます。

  - **行$y = 1$**：$(1, 1), (2, 1)$
  - **行$y = 2$**：$(3, 2), (4, 2)$
  - **行$y = 3$**：$(1, 3), (2, 3)$
  - **行$y = 4$**：$(3, 4), (4, 4)$

- **合計8点**：

  $S' = \{ (1,1), (2,1), (3,2), (4,2), (1,3), (2,3), (3,4), (4,4) \}$

**(B) 長方形を形成しないことの確認**

任意の4点を取っても、同じ$x$座標が2種類、$y$座標が2種類となる組み合わせが存在しないことを確認します。

- **列ごとの選択点**：

  - **$x = 1$**：$(1,1), (1,3)$
  - **$x = 2$**：$(2,1), (2,3)$
  - **$x = 3$**：$(3,2), (3,4)$
  - **$x = 4$**：$(4,2), (4,4)$

- **列ごとの点の$y$座標**：

  各列で選ばれた点の$y$座標は異なるため、同じ$x$座標で同じ$y$座標のペアが存在しません。

- **行ごとの選択点**：

  - **$y = 1$**：$(1,1), (2,1)$
  - **$y = 2$**：$(3,2), (4,2)$
  - **$y = 3$**：$(1,3), (2,3)$
  - **$y = 4$**：$(3,4), (4,4)$

- **行ごとの点の$x$座標**：

  各行で選ばれた点の$x$座標は異なるため、同じ$y$座標で同じ$x$座標のペアが存在しません。

したがって、この$S'$ではどの4点を選んでも長方形を形成しません。

**(C) 9点以上は不可能であることの証明**

次に、要素数が9以上の$S'$では、必ず長方形を形成する4点の組が存在することを証明します。

- **仮定**：9点以上の部分集合$S'$が存在し、条件を満たすとします。

- **列と行の点数の合計**：

  - $S'$の点は9点以上なので、4列のいずれかには$\left\lceil \dfrac{9}{4} \right\rceil = 3$点以上の点が含まれます。同様に、4行のいずれかにも3点以上の点が含まれます。

- **列に着目**：

  ある列（$x$座標が固定）に3点以上の点があるとします。これらの点は異なる$y$座標にあります。

- **行に着目**：

  同様に、ある行（$y$座標が固定）に3点以上の点があるとします。これらの点は異なる$x$座標にあります。

- **長方形の形成**：

  - 列と行の組み合わせによって、同じ$x$座標の点が同じ$y$座標に現れる可能性が高まります。

  - 特に、同じ列に3点、同じ行に3点ある場合、これらの点の組み合わせによって長方形が形成される可能性が高いです。

- **対角線上の点を考慮**：

  - $S'$の点数が9点であるため、点の配置によっては長方形を避けることが困難になります。

- **結論**：

  - 以上より、9点以上の$S'$では必ず長方形を形成する4点が存在します。したがって、条件を満たす$S'$の最大要素数は8点です。

---

**答え**

条件を満たす部分集合$S'$の要素数の最大値は**8**である。

## 採点結果

**合計：0/60**

残念ながら，結論も，その根拠も間違っています．ただし，「最大値であることの証明」のアプローチは問題なく、O1の発表が気になるところです．

# 大問5
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3677950/6614a1da-d6d4-b292-78f0-d981bdb2196f.png)

<details><summary>プロンプト</summary>
あなたは、国際数学オリンピックの金メダリストです。
以下の数学の問題の解答を作成してください。ただし、解答作成の際は、以下の点に留意してください。
(1)この問題は、日本の高校生に対して出題される問題です。したがって、解答には高校で習う程度の数学の知識のみを用いて解答してください。積分や関数の値は、log、In、exp、sqrt、sin、cosなどを用いて、解析的な形で必ず表現し、数値積分は用いないでください。

(2)この問題の解答には、基本的にプログラミングを使用せず、数学的な論理展開・式変形に基づく議論に基づいて、解答を作成してください。ただし、数式の計算や、図を描画する際には、必ずPythonのプログラミングを使用して、計算ミスが起こらないように注意してください。

(3)図を描画する問題は、matplotlibを用いて、解答の図も作成してください。

(4)「全て求めよ。」という指示の問題に対しては、考え得る答えの組以外に、ほかの組み合わせが存在しないということも、数学的な議論に基づいて、証明してください。同様に、「最大値を求めよ」と言った形式の問題は、最大値を求めるだけではなく、実際にそれが最大値であることも証明してください。

(5)「であることを示せ。」という指示の問題は、証明問題です。したがって、いくつかの具体的な数値で成り立つことを証明するだけでなく、数学的な議論に基づいて、題意を満たす全ての場合について、命題が成立することを証明してください。

(6) 「f(n)を求めよ」という形式の問題は、いくつかの場合でf(n)の値を求めるのではなく、f(n)をnについての閉じた式で表してください。

(7) 数式の部分は、$f(x)$のようにその左右を必ず$$で囲んでください。



以上の指示に基づいて、以下の問題の解答を作成してください:
#問題


以下の問いに答えよ.

\begin{enumerate}[(1)]
    \item $k=1, 2, \dots$に対して$\displaystyle a_k = \int^{k \pi}_{(k-1)\pi} e^{-x} |\sin x|  dx$とおくとき，数列$\{ a_k\}$が等比数列であることを示せ．\\
    \item 次の定積分を計算せよ．
    $$I = \int^{\pi}_{0} xe^{-x} \sin x dx $$
    \item $k=1, 2, \dots$に対して，数列$\{ b_k \}$を以下の式で定める．
    $$b_k = \int^{k \pi}_{0} x e^{-x} |\sin x| dx$$
    このとき，$\displaystyle \lim_{k \to \infty} b_k$を求めよ．
\end{enumerate}

#解答
</details>

## ChatGPTの出力(98秒)
**解答**

---

**（1）**

数列 \(\{ a_k \}\) を
$$
a_k = \int_{(k-1)\pi}^{k\pi} e^{-x} |\sin x| \,dx
$$
と定めます。

まず、\(|\sin x|\) は周期 \(\pi\) の周期関数であり、\(|\sin (x + \pi)| = |\sin x|\) が成り立ちます。また、指数関数 \(e^{-x}\) は、\(x\) が \(\pi\) 増加するごとに倍数 \(e^{-\pi}\) をかけた値に減少します。

そこで、変数変換を用いて \(a_k\) と \(a_{k-1}\) の関係を調べます。\(x = y + \pi\) と置くと、
\[
\begin{align*}
a_k &= \int_{(k-1)\pi}^{k\pi} e^{-x} |\sin x| \,dx \\
&= \int_{(k-1)\pi}^{k\pi} e^{-(y + \pi)} |\sin(y + \pi)| \,dy \\
&= e^{-\pi} \int_{(k-1)\pi}^{k\pi} e^{-y} |\sin y| \,dy \\
&= e^{-\pi} \int_{(k-2)\pi}^{(k-1)\pi} e^{-y} |\sin y| \,dy \quad (\text{積分区間を調整}) \\
&= e^{-\pi} a_{k-1}
\end{align*}
\]

よって、すべての正整数 \(k\) に対して
$$
a_k = e^{-\pi} a_{k-1}
$$
が成り立ちます。これは、公比 \(r = e^{-\pi}\) の等比数列であることを示しています。したがって、数列 \(\{ a_k \}\) は等比数列です。

---

**（2）**

積分
$$
I = \int_0^\pi x e^{-x} \sin x \,dx
$$
を計算します。

部分積分を用いて計算します。\(u = x\)、\(dv = e^{-x} \sin x \,dx\) と置くと、\(du = dx\)、\(v\) は以下のようになります：
\[
\begin{align*}
v &= \int e^{-x} \sin x \,dx \\
&= -\frac{1}{2} e^{-x} (\sin x + \cos x) + C
\end{align*}
\]

部分積分の公式より、
\[
I = uv \biggr|_0^\pi - \int_0^\pi v \,du
\]

まず、\(uv\) を計算します：
\[
\begin{align*}
u v \biggr|_0^\pi &= \left[ x \left( -\frac{1}{2} e^{-x} (\sin x + \cos x) \right) \right]_0^\pi \\
&= \left( -\frac{\pi}{2} e^{-\pi} (\sin \pi + \cos \pi) \right) - \left( 0 \right) \\
&= \left( -\frac{\pi}{2} e^{-\pi} (0 -1) \right) \\
&= \frac{\pi e^{-\pi}}{2}
\end{align*}
\]

次に、\(\int_0^\pi v \,du\) を計算します：
\[
\int_0^\pi v \,du = \int_0^\pi \left( -\frac{1}{2} e^{-x} (\sin x + \cos x) \right) dx = -\frac{1}{2} \int_0^\pi e^{-x} (\sin x + \cos x) dx
\]

ここで、
\[
I' = \int_0^\pi e^{-x} (\sin x + \cos x) dx
\]

この積分を計算します。まず、
\[
\int e^{-x} \sin x \,dx = -\frac{1}{2} e^{-x} (\sin x + \cos x) + C
\]
\[
\int e^{-x} \cos x \,dx = -\frac{1}{2} e^{-x} (\cos x - \sin x) + C
\]

それぞれ定積分すると、
\[
\int_0^\pi e^{-x} \sin x \,dx = \left[ -\frac{1}{2} e^{-x} (\sin x + \cos x) \right]_0^\pi = \left( -\frac{1}{2} e^{-\pi} (0 + 1) \right) - \left( -\frac{1}{2} (0 + 1) \right) = -\frac{e^{-\pi}}{2} + \frac{1}{2}
\]
\[
\int_0^\pi e^{-x} \cos x \,dx = \left[ -\frac{1}{2} e^{-x} (\cos x - \sin x) \right]_0^\pi = \left( -\frac{1}{2} e^{-\pi} (-1 - 0) \right) - \left( -\frac{1}{2} (1 - 0) \right) = \frac{e^{-\pi}}{2} - \frac{1}{2}
\]

これらを合計すると、
\[
I' = \left( -\frac{e^{-\pi}}{2} + \frac{1}{2} \right) + \left( \frac{e^{-\pi}}{2} - \frac{1}{2} \right) = 0
\]

したがって、
\[
I = \frac{\pi e^{-\pi}}{2} - \frac{1}{2} \times 0 = \frac{\pi e^{-\pi}}{2}
\]

---

**（3）**

数列 \(\{ b_k \}\) を
$$
b_k = \int_0^{k\pi} x e^{-x} |\sin x| \,dx
$$
と定義します。

このとき、
\[
\lim_{k \to \infty} b_k = \int_0^\infty x e^{-x} |\sin x| \,dx
\]

この積分を計算します。

まず、偶数関数である \(|\sin x|\) の性質を利用します。積分の収束性を確認するため、以下の不等式を考えます：
\[
0 \leq x e^{-x} |\sin x| \leq x e^{-x}
\]

右辺の \(\int_0^\infty x e^{-x} dx\) は有限値を持つため、元の積分も収束します。

さらに、\(|\sin x|\) の周期性を利用して積分を評価します。しかし、高校の範囲では複雑になるため、以下の結果を利用します：
\[
\int_0^\infty x e^{-x} \sin x \,dx = \frac{1}{2}
\]

\(|\sin x|\) は \(\sin x\) の負の部分を正にしたものなので、全体の積分はこの値と同じになります。したがって、
\[
\lim_{k \to \infty} b_k = \frac{1}{2}
\]

---

**答え**

（1）数列 \(\{ a_k \}\) は等比数列である。

（2）\(I = \dfrac{\pi e^{-\pi}}{2}\)

（3）\(\displaystyle \lim_{k \to \infty} b_k = \dfrac{1}{2}\)
## 採点結果
（何故か数式を\$\$で囲んでくれなかった...）
**合計：25/60**

(1) 15/15．証明として問題ありません．

(2) 10/20．$e^{-x}\cos x$の部分で符号のミスをしているようです．

(3) 0/25．残念ながら間違っています．

# 総評

合計時間は391秒で，得点は125点でした．東工大数学は180分（10800秒）で解くものですから，それをわずか6分半で解けるのはすごいとしか言いようがありません．しかも今回の模試は難易度が高めで，受験生でもこの点数を取ることは決して簡単ではない（180分かけてもこの点数をとることは簡単ではない）と思います．まして391秒で125点取るのは無理でしょう（筆記にかかる時間は別にカウントしても）．時間方向のスケーリング則を考えると，180分使ったらどうなるか想像するだけで恐ろしいです．

プロンプト次第ではもう少し点が取れそうな気がするがどうなのでしょうか？

# 終わりに

ここまで読んでくださってありがとうございました．今後は別の模試でもチェックしたいです．それでは次の記事でお会いしましょう！