他の問題のwriterだったので,writer権限でtesterもやっていたのですが,そのときに思いついた解法を紹介します.
便宜上,0 も増加的な数とする.以下のように定義する:
- 集合 A,B に対して,A の要素であるが,B の要素でないもの全体の集合を A∖B と表す.
- 有限集合 C に対して,C の持つ元の個数を ∣C∣ と表し,その ∣C∣ 個の元の総和を S(C) と表す.
- K=1,2,…,9 に対して,集合 ZK を 1 の位が K 以下である増加的な数全体で定める.
いま,増加的な数は集合 {1,2,…,9} の部分集合と一対一に対応することから,∣ZK∣=2K である.さらに,定義より,9 以下の正の整数 a,b に対して,a<b⟺Za⊂Zb が成立することに留意せよ.いま求めたいものは S(Z9) と表せる.
K≥2 を固定して集合 ZK∖ZK−1 の元 M について考察してみよう.M は増加的な数であるから,M の末尾 1 桁を取り除いた数 10M−K も増加的な数であり,その 1 の位は K−1 以下であるので,10M−K∈ZK−1 である.∣ZK∖ZK−1∣=∣ZK−1∣ であることより,10M−K として考えられる数全体の集合が ZK−1 と一致するので,
S(ZK∖ZK−1)=10S(ZK−1)+K∣ZK−1∣=10S(ZK−1)+K2K−1
である.このことから,S(ZK)=11S(ZK−1)+K2K−1 がわかる.S(Z1)=1 であるから,得られた式を繰り返し用いて計算することで(筆者はここでOMC電卓を用いた),S(Z9)=320214537 であることがわかる.
【補足1】ここで得られた S(ZK)=11S(ZK−1)+K2K−1 という漸化式を解いて K に対する一般項を得ることもできるが,sum(Z9) を求められさえすればそれでいい本題では,それをする旨味はほとんどない.
【補足2】提出するべき値は,123456789×511<109×103=1012 より 1012 未満であるので,OMC電卓であれば余裕をもって表示することができる.したがってOMC電卓を用いて 511 個の整数を足し合わせることでも正解を得られるはずである.