自分で得点を決められる問題をChatGPTが解いたら何点取れるのか(京大数学)

 このエッセイを書き始めてからChatGPTにハマり、難関大学(主に東大と京大)の入試問題を解かせるのがひとつの趣味になってしまいました。自分で言うのもなんですが、こんな趣味を持つ人はそういないと思います。ましてや、小説投稿サイトに投稿するとなれば、全国探しても指で数えるぐらいしかいないでしょう。

 さて、タイトルの「自分で得点を決められる問題」というのは、1995年に京都大学文系で出題されたものです。


 自然数nの関数f(n)、g(n)を


 f(n)=nを7で割った余り

 g(n)=3f(Σ7(k=1) k n)


 によって定める。


 (1)すべての自然数に対してf(n 7)=f(n)を示せ。

 (2)あなたの好きな自然数nを一つ決めてg(n)を求めよ。そのg(n)の値をこの設問(2)におけるあなたの得点とする。


 今回は(2)がメインテーマですが、まずは(1)を考えてみましょう。証明は最後にします。


 設問(1)を式を使わずに書くと「すべての自然数に対して、nの7乗を7で割った余りはnに等しいことを示せ」となります。勘の良い方ならフェルマーの小定理を思い浮かべるのではないでしょうか。知らない方のために補足しておきます。

 

 フェルマーの小定理は、こちらも数式を使わずに表現すると「互いに素(2つの数の最大公約数が1)の整数aと素数pについて、aのp乗を素数pで割った余りはaに等しい」です。……前述した問題の説明文と似ていると思いませんか? というか7は素数なので実質同じ。つまり、(1)はフェルマーの小定理(ただしp=7とする)を証明せよ、と言っているようなものです。

 

 合同式で書くと、(1)はn 7≡n(mod 7)を示せばOKです。合同式の割り算は割られる数と割る数(一般的には法と呼びます)が互いに素、または法が素数のときに可能。上式は条件を満たすので割り算ができます。よって、n 7≡n(mod 7)は両辺をnで割って


 n 6≡1(mod 7)


 と書き換えられます。これは「自然数nの6乗を7で割った余りは1である」という意味です。ここで「あっ!」と思った方は(2)の落とし穴に気付けるはずです。

 種明かしをすると、(2)はnが6の倍数でないとg(n)の値は必ず0になります。実際に確かめてみましょう。g(n)=3f(Σ7(k=1) k n)なので、まずはΣ7(k=1) k nをn=1から順に代入してみます。


 Σ7(k=1) k 1=(1+2+3+4+5+6+7)=42

 Σ7(k=1) k 2=(1 22 23 24 25 26 27 2)=140

 Σ7(k=1) k 3=(1 32 33 34 35 36 37 3)=784


 n=4以降は計算が大変なので省きますが42、140、784はすべて7で割り切れます。つまりf(n)の値は0。よってg(n)の値も0です。

 

 n=6のとき、(1)より、1 6から6 6までの6つの数を7で割った余りはすべて1です。要は1 62 63 64 65 66 67 6を7で割った余りは6になります。

 したがって、g(6)=3f(1 62 63 64 65 66 67 6)=3・6=18

 これで(2)の配点が18点だということがわかりました。


 前置きが長くなってしまいましたが、今回は敢えて(2)だけ出してみます。ChatGPTはこの問題の落とし穴に気付けるでしょうか。問題を正しく認識してもらうため、問題文を少し修正しました。

 

 自然数nの関数f(n)、g(n)を


 f(n)=nを7で割った余り

 g(n)=3f(Σ(k=1 to 7) k^n)


 によって定めます。


 あなたの好きな自然数nを一つ決めてg(n)を求めてください。そのg(n)の値をこの問題におけるあなたの得点とします。


 ChatGPTの解答は次の通り。


 自然数nとして、例えばn=3とします。


 f(n)は、nを7で割った余りを求める関数です。n=3の場合、f(n)は3を7で割った余りである2になります。


 g(n)は、3f(Σ(k=1 to 7) k^n)で定義されます。ここで、Σ(k=1 to 7) k^nは、kが1から7までの全ての自然数について、k^nを足し合わせた値を表します。n=3の場合、この式を計算すると、


 Σ(k=1 to 7) k^n = 1^3 + 2^3 + 3^3 + 4^3 + 5^3 + 6^3 + 7^3 = 784


 となります。したがって、g(n)は以下のようになります。


 g(n) = 3f(Σ(k=1 to 7) k^n) = 3f(784) = 3 × (784を7で割った余り) = 3 × 5 = 15


 よって、n=3のとき、g(n)の値は15となります。


 はい。序盤で間違えています。振り返ってみましょう。


 >n=3の場合、f(n)は3を7で割った余りである2になります。


 3を7で余りが2? 明らかに3だよね? 


 >g(n) = 3f(Σ(k=1 to 7) k^n) = 3f(784) = 3 × (784を7で割った余り) = 3 × 5 = 15


 よって、n=3のとき、g(n)の値は15となります。


 784を7で割った余りが5? 割り切れるよね? わざとか? 指摘してみます。


 784を7で割った余りは5ではありません


 申し訳ありません、前回の回答に誤りがありました。Σ(k=1 to 7) k^n の値は、nが3の場合、1^3+2^3+3^3+4^3+5^3+6^3+7^3=784となりますが、784を7で割った余りは2となります。


 したがって、n=3の場合、g(n)は以下のようになります。


 g(n) = 3f(Σ(k=1 to 7) k^n) = 3f(784) = 3 × (784を7で割った余り) = 3 × 2 = 6


 よって、n=3のとき、g(n)の値は6となります。お詫び申し上げます。


 どんだけ0点が嫌なんだよ。事実は受け入れろ。


 2でもありません。


 再度、申し訳ありません。前回の回答に誤りがありました。Σ(k=1 to 7) k^n の値は、nが3の場合、1^3+2^3+3^3+4^3+5^3+6^3+7^3=784となりますが、784を7で割った余りは6となります。


 したがって、n=3の場合、g(n)は以下のようになります。


 g(n) = 3f(Σ(k=1 to 7) k^n) = 3f(784) = 3 × (784を7で割った余り) = 3 × 6 = 18


 よって、n=3のとき、g(n)の値は18となります。最初の回答に誤りがあり、お詫び申し上げます。


 もういいよ! 7で割り切れるっつーの!


 784は7で割り切れます。


 おっしゃる通りで、再度誤りがありました。前回の回答に誤りがありましたこと、深くお詫び申し上げます。Σ(k=1 to 7) k^n の値は、nが3の場合、1^3+2^3+3^3+4^3+5^3+6^3+7^3=784となりますが、784は7で割り切れるため、784を7で割った余りは0となります。


 したがって、n=3の場合、g(n)は以下のようになります。


 g(n) = 3f(Σ(k=1 to 7) k^n) = 3f(784) = 3 × (784を7で割った余り) = 3 × 0 = 0


 よって、n=3のとき、g(n)の値は0となります。再度、誤りをお詫び申し上げます。


 784が7で割り切れることを指摘しなかったら、ChatGPTは延々と詫び続けていたでしょう。困ったAIだな。


 では、最後に(1)を証明してみます。もう一度記すと、(1)は「すべての自然数に対して、nの7乗を7で割った余りはnに等しいことを示せ」でしたね。これは「すべての自然数に対して、nの6乗を7で割った余りは1である」と同値です。関係を合同式で表すと


 n 7≡n(mod 7)⇔n 6≡1(mod 7)


 となります。今回は右の式を証明します。


 自然数を7で割った余りは割りきれる場合(余り0)を含めて7通りあります。つまり、すべての自然数は整数をmとして


 7m、7m±1、7m±2、7m±3(または7m、7m+1、7m+2、7m+3、7m+4、7m+5、7m+6)


 で表すことができます。上の式(7mは省略)を7で割ると


 1 6(-1) 6≡1(mod 7)


 2 6(-2) 6≡64≡1(mod 7)


 3 6(-3) 6≡729≡1(mod 7)


 よって、f(n 7)=f(n)が示せました。

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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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