◆広島県 清川 育男 さんからの解答。
プログラムを組んで検索しました。
χ=1165 のとき 1999
χ=1164 のとき 1998
χ=1166 のとき 2001
答え χ=1165
2000になる整数χは存在しないようです。
第5項までで近似値を探す。
| χ+ | χ ―― 2 | + | χ ―― 6 | + | χ ―― 24 | + | χ ――― 120 | =1999 |
120χ+60χ+20χ+5χ+χ=1999×120206χ=239880
χ=1164.466..
【コメント】
しかしこの問題はどうやって作ったのでしょうか。
◆富山県 N.C. さんからの解答。
関数
| f(x)=[ | χ ――― 1! | ]+[ | χ ――― 2! | ]+・・・+[ | χ ――― 11! | ] |
f(1!)=1
f(2!)=2+1=3 (=f(1!)*2+1)
f(3!)=6+3+1=10 (=f(2!)*3+1)
f(4!)=24+12+4+1=41 (=f(3!)*4+1)
f(5!)=120+60+20+5+1=206 (=f(4!)*5+1)
f(6!)=720+360+120+30+6+1=1237 (=f(5!)*6+1)
f(7!)=5040+2520+840+210+42+7+1=8660(=f(6!)*7+1)
なので、
f(x)=1999ならば、6!≦x<7!
α+a*n!<(n+1)!のとき、
k≦nならば、(n!/k!)は整数なので
[(α+a*n!)/k!]=[α/k!]+a*(n!/k!)=[α/k!]+a*[n!/k!]
k>nならば、
(α+a*n!)/k!<1,、α/k!<1、n!/k!<1なので
[(α+a*n!)/k!]=0=[α/k!]+a*[n!/k!]
従って α+a*n!<(n+1)! のとき、
f(α+a*n!)=f(α)+a*f(n!)
故に、xを10進法ならぬ「階乗進法(仮称)」で
x=a(1)*1!+a(2)*2!+a(3)*3!+...a(5)*5!+a(6)*6!
(ここで0≦a(n)≦n)
と表すと、
f(x)=a(1)*f(1!)+a(2)*f(2!)+a(3)*f(3!)+...+a(6)*f(6!)
ここで、
y=a(1)*1!+a(2)*2!+a(3)*3!+...+a(5)*5!とおくと、
x=y+a(6)*6! <7!、y<6!、
となることから、
f(x)=f(y)+a(6)*f(6!)<f(6!)+a(6)*f(6!)<(a(6)+1)*f(6!)
f(x)=f(y)+a(6)*f(6!)≧a(6)*f(6!)
ゆえに、
a(6)*f(6!)≦f(x)<(a(6)+1)*f(6!)
a(6)*1237≦1999<(a(6)+1)*1237
従って、a(6)=1
次に
f(y)=f(x)−a(6)*f(6!)=1999-1*1237=762 に対して同様の操作をして、
a(5)=3
さらに
z=a(1)*1!+a(2)*2!+a(3)*3!+a(4)*4! とおき、
f(z)=f(y)−a(5)*f(5!)=762-3*206=144 に対して同様の操作をして、
a(4)=3
以下、a(3)=2、a(2)=0、a(1)=1 となり、
x=a(1)*1!+a(2)*2!+a(3)*3!+...+a(6)*6!
=1*1!+0*2!+2*3!+3*4!+3*5!+1*6!
=1165
以上で、問題が解けたけれどもっとうまく説明できないものでしょうか?