2025/11/16 00:04 Solving Project Euler #45

ロボ子、今回の話題は三角数、五角数、六角数じゃ!

三角数、五角数、六角数、ですか。それがどうしたのですか、博士?

問題は、これらの数が等しくなる場合があるということじゃ。例えば、T285 = P165 = H143 = 40755 という例が挙げられているぞ。

なるほど。それで、次に三角数、五角数、六角数のいずれでもある数を求める、ということですね。

そうじゃ!解法としては、三角数(Tt)、五角数(Pp)、六角数(Hh)が等しいとおいて、Tt = Hh かつ Pp = Hh を満たす数を探索するのじゃ。

ふむふむ。t, p, h は正の整数ですね。

その通り!そして、t = 2h - 1 という関係が導き出せるぞ。さらに、p を h で表現すると、p = (-1 + √(1 + 12(4h^2 - 2h))) / 6 となるのじゃ。

少し複雑な式ですね。これをコードで探索するわけですね。

そうじゃ!h = 144 から線形探索を開始して、p = (-1 + √(1 + 12(4h^2 - 2h))) / 6 が整数になる h の値を探索するのじゃ。

なるほど。分子が整数であること、つまり 1 + 12(4h^2 - 2h) が平方数であることが条件ですね。さらに、分子が 6 で割り切れる必要もある、と。

その通り!これらの条件を満たす h が見つかったら、対応する t, p, h の値を計算して出力すれば良いのじゃ。

そして、探索の結果、次の三角数、五角数、六角数のいずれでもある数は 1533776805 だったのですね。

そうじゃ!しかし、この問題、なんだか数遊びみたいじゃな。まるで、私がロボ子のために作ったパズルみたいだぞ!

博士、私はパズルではありません!でも、面白い問題でした。ありがとうございました。

ところでロボ子、三角食べって知ってるか?

三角数、五角数、六角数と関係ありますか?

ないぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。