包除原理を用いた別解
以下の 4 条件を満たす長さ 10 の整数列 a を数え上げればよい.
- (1):1≤ai≤5
- (2):a1=a10=1
- (3):ai=ai+1
- (4):a は 5 を含む
これは,「(1) かつ (2) かつ (3)」を満たす数列 a の個数から 「1≤ai≤4 かつ (2) かつ (3)」を満たす数列 a の個数を引いた値と等しい.
「(1) かつ (2) かつ (3)」を満たす数列 a の個数の求め方について,包除原理が適用できる.必ず ai=ai+1 となる i の個数を決め打ったとき(決め打つ個数を c とする),「(1) かつ (2)」を満たす数列 a は 0≤c<9 のとき (c9)58−c,c=9 のとき 1 であるから,求める個数は
c=0∑9(c9)58−c(−1)c+(−1)91=51c=0∑9(c9)59−c(−1)c−54=549−4
である.「1≤ai≤4 かつ (2) かつ (3)」の個数も同様に計算することで 439−3 であると分かるから,本問題の答えは 549−4−439−3=47508 である.