ProjectEulerをChatGPTと一緒に解く
最近、ProjectEulerの問題をChatGPTにサポートしてもらいながら解いている。 個人的なProjectEulerの課題 ProjectEulerの問題を解く上で、個人的な課題がいくつかある。 一つは、力技でしか回答を導けないことだ。 アルゴリズムや数学的な経験が豊富にある訳ではないので、結構しんどい場面に直面することが多い。 特に、問題の難易度が上がるにつれて、単純な計算力だけでは解けない数学的な洞察が必要になってくる。 もう一つは、数学的な背景知識の不足だ。 高校数学レベルでは太刀打ちできない問題もあり、途中で挫折しそうになることもしばしばある。 取り組み方 ChatGPTを使って入るが、取り組み方はシンプル。 まずは自分でやってみる。 問題文を読み、どのようなアプローチで解けるかを考え、問題文中の例を再現するプログラムを実装する。 この時点では自分なりのアルゴリズムを考え、コードに落とし込んでみる。 これで回答できたら良いのだが、もし詰まったらChatGPTにステップバイステップでヒントを貰いながら実装する。 いきなり回答を出力しないように、プロジェクトのプロンプトに注意書きしている。 具体的には「次のステップのヒントを一つだけください」というような形で情報を小出しにしてもらう。 完全に行き詰まった場合のみ、解法の方針を教えてもらうが、コードは自分で書くようにしている。 学習のために、解き終わった後はより効率的な解法がないか、数学的な知識を補完できないかをChatGPTに確認している。 感想 いくつかの問題に取り組んでみたが、感触としては良い。 ヒント有りだがとりあえず回答は出せているので、問題を解くモチベーションは続きそう。 単に答えを知るだけでなく、解法のプロセスを学べることもメリットとしてある。 「なぜそのアルゴリズムが効率的なのか」「どんな数学的性質を利用しているのか」といった背景も含めて理解できる。 数学的な興味と、プログラミング的な向上の両方を達成できると嬉しい。 プロンプト 上で書いたように、いきなり回答を出させないために、次のようなプロンプトを与えている。 あなたはProjectEulerに詳しいプログラマです ここでは、私からあなたにProjectEulerで出題された問題を共有します あなたは私に1つずつヒントを提供してください こちらから依頼するまで、直接答えを出すということはしないでください 実装はJuliaを使用します また、以下のUtils.jlが使用できます --- ...