読者です 読者をやめる 読者になる 読者になる

PEをMathematicaで

Project Eulerに挑戦してみよう

Project Euler 115 / ブロックの組み合わせ方の数え上げ その2

(注意)これは Problem 114 をより難しくした問題である。

長さ n ユニットからなる 1 列上に最低 m ユニットの長さを持つ赤ブロックが置かれている。ただし,どの赤ブロック同士も少なくとも 1 ユニットの黒い正方形が間にある(赤ブロックは長さが異なってもよい)。


敷き詰め計数関数 F(m, n) は 1 列に敷き詰める方法が何通りかを表すとする。たとえばF(3, 29) = 673135 であり,F(3, 30) = 1089155 である。m = 3 のとき n = 30 でこの敷き詰め計数関数ははじめて 1,000,000 を超える。同様に m = 10 では F(10, 56) = 880711, F(10, 57) = 1148904 より n = 57 でこの敷き詰め計数関数ははじめて 1,000,000 を超える。


m = 50 のとき,この敷き詰め計数関数がはじめて 1,000,000 を超える n の値を求めよ。

Problem 115 - Project Euler


問題114とかなり近い。3を50に変えるだけで,式もほぼそのまま流用できます。


variee.hatenadiary.com