・コンピュータの能力を超えて                 GAI 氏

 10!=3628800 となり、下2桁には0が並び、次の0でなくなる最初の数字は8で、先頭の数は
3である。

 そこで、987654321!(多分コンピュータでもこの数字の直接の計算はしてくれないと思う。)では、

(1) 下何桁まで0の数字が並ぶか?
(2) 0でなくなる最初の数字は何か?
(3) 先頭にくる数字は何か?

※ただし、必要とあればコンピュータの能力で計算可能な手は利用しても結構です。


 DD++さんからのコメントです。(令和2年4月11日付け)

 Wolfram先生が、5.113437854063095705 × 10^8454627645 と計算してくれましたので、
(3)の答えは、5


(コメント) (1)は手計算でも出来そうなので計算してみました。

 987654321÷5=197530864
 197530864÷5=39506172
 39506172÷5=7901234
 7901234÷5=1580246
 1580246÷5=316049
 316049÷5=63209
 63209÷5=12641
 12641÷5=2528
 2528÷5=505
 505÷5=101
 101÷5=20
 20÷5=4

 この計算の商の和は、246913573 なので、下246913573桁まで0の数字が並ぶ。


 らすかるさんからのコメントです。(令和2年4月11日付け)

(1) 5^12<987654321<5^13 なので、 Σ[k=1〜12][987654321/5k]=246913573個。

(2) 2^29<987654321<2^30 なので、 Σ[k=1〜29][987654321/2k]=987654304

 よって、 987654321!=2^987654304×5^246913573×(2でも5でも割り切れない数)

 f(x)を「x以下の奇数で5で割り切れないものの積の1の位」と定義します。

 例えば、 f(17)≡17×13×11×9×7×3×1≡9 (mod10) から f(17)=9
       f(8)≡7×3×1≡1 (mod10) から f(8)=1

のようになります。

 f(n+20)=f(n)、f(1)=1、f(3)=3、f(7)=1、f(9)=9、f(11)=9、f(13)=7、f(17)=9、f(19)=1

なので、値は一目でわかります。2^p×5^qの倍数ごとに考えればよいので、

(0でない最下位の数字)
≡f(987654321)・f(493827160)・f(246913580)・f(123456790)・f(61728395)・f(30864197)
・f(15432098)・f(7716049)・f(3858024)・f(1929012)・f(964506)・f(482253)・f(241126)・f(120563)
・f(60281)・f(30140)・f(15070)・f(7535)・f(3767)・f(1883)・f(941)・f(470)・f(235)・f(117)・f(58)
・f(29)・f(14)・f(7)・f(3)・
 f(197530864)・f(98765432)・f(49382716)・f(24691358)・f(12345679)・f(6172839)・f(3086419)
・f(1543209)・f(771604)・f(385802)・f(192901)・f(96450)・f(48225)・f(24112)・f(12056)・f(6028)
・f(3014)・f(1507)・f(753)・f(376)・f(188)・f(94)・f(47)・f(23)・f(11)・f(5)・f(2)・
 f(39506172)・f(19753086)・f(9876543)・f(4938271)・f(2469135)・f(1234567)・f(617283)
・f(308641)・f(154320)・f(77160)・f(38580)・f(19290)・f(9645)・f(4822)・f(2411)・f(1205)・f(602)
・f(301)・f(150)・f(75)・f(37)・f(18)・f(9)・f(4)・f(2)・
 f(7901234)・f(3950617)・f(1975308)・f(987654)・f(493827)・f(246913)・f(123456)・f(61728)
・f(30864)・f(15432)・f(7716)・f(3858)・f(1929)・f(964)・f(482)・f(241)・f(120)・f(60)・f(30)・f(15)
・f(7)・f(3)・
 f(1580246)・f(790123)・f(395061)・f(197530)・f(98765)・f(49382)・f(24691)・f(12345)・f(6172)
・f(3086)・f(1543)・f(771)・f(385)・f(192)・f(96)・f(48)・f(24)・f(12)・f(6)・f(3)・
 f(316049)・f(158024)・f(79012)・f(39506)・f(19753)・f(9876)・f(4938)・f(2469)・f(1234)・f(617)
・f(308)・f(154)・f(77)・f(38)・f(19)・f(9)・f(4)・f(2)・
 f(63209)・f(31604)・f(15802)・f(7901)・f(3950)・f(1975)・f(987)・f(493)・f(246)・f(123)・f(61)
・f(30)・f(15)・f(7)・f(3)・
 f(12641)・f(6320)・f(3160)・f(1580)・f(790)・f(395)・f(197)・f(98)・f(49)・f(24)・f(12)・f(6)・f(3)・
 f(2528)・f(1264)・f(632)・f(316)・f(158)・f(79)・f(39)・f(19)・f(9)・f(4)・f(2)・
 f(505)・f(252)・f(126)・f(63)・f(31)・f(15)・f(7)・f(3)・
 f(101)・f(50)・f(25)・f(12)・f(6)・f(3)・
 f(20)・f(10)・f(5)・f(2)・
 f(4)・f(2)・2^(987654304-246913573)
≡(f(3))^16・(f(4))^14・(f(5))^10・(f(6))^11・(f(7))^10・(f(8))^7・(f(9))^11・(f(10))^13・(f(11))^6
 ・(f(12))^13・(f(13))^5・(f(14))^7・(f(15))^10・(f(16))^8・(f(17))^7・(f(18))^9・(f(19))^7
 ・2^(987654304-246913573)
≡(f(3))^51・(f(9))^24・(f(11))^19・(f(13))^30・(f(17))^16・2^(987654304-246913573)
≡3^169・7^30・2^740740731
≡7・2^3
≡6  (mod10)

 よって、0でない最下位の数字は、6になると思いますが、大半手作業なので計算間違いが
あるかも知れません。

# もう少しましな方法がありそうな気がします。

(3) スターリングの公式から、987654321!〜√(2π×987654321)(987654321/e)^987654321

 これは巨大なので対数をとって、

log[10]{√(2π×987654321)(987654321/e)^987654321}
=(1/2)log[10](2π×987654321)+987654321log[10](987654321/e)
=8454627645.7087129821…

 10^0.7087129821=5.11343785… なので、 987654321!≒5.11×10^8454627645

 よって、先頭の数字は、5です。


 GAIさんからのコメントです。(令和2年4月11日付け)

  (2)について、987654321!の0でない最下位の数字を探す方法:

[1] 987654321を5進数に直す。→987654321=4010314414241[五]

[2] 右の数で偶数[2又は4]の数字を足して半分にする。→(4+4+4+4+2+4)/2=11・・・・・(1)

[3] [1]の右の配列に順に、[12,11,10,9,8,7,6,5,4,3,2,1,0]の数を乗じてすべて加える。
  →4*12+0*11+1*10+0*9+3*8+1*7+4*6+4*5+1*4+4*3+2*2+4*1+1*0
   =48+10+24+7+24+20+4+12+4+4=157・・・・・(2)

[4] Mod((1)+(2),4)を計算する。→Mod(11+157,4)=Mod(168,4)=0

[5] 上のMod計算の数を2の指数に使う。ここでは、2^0=1

 最後が1である時のみ6へ変更して、これを最後の答えとする。

 2^1=2 なら答えは2 、2^2=4 なら答えは4 、2^3=8 なら答えは8
(即ち答えは2か4か6か8のいずれかになる。)

 従って、らすかるさんの途轍もない手計算は正解です。

 30!(=265252859812191058636308480000000:これなら計算してくれる。)では、30=110[五]

 偶数はないので、0・・・・・(1)

 1*2+1*1+0*0=3・・・・・(2)

 Mod((1)+(2),4)=Mod(0+3,4)=3

 これより、2^3=8

 よって、30!での0でない最下位の数字は8である。


(コメント) 何とも不思議な計算ですね!勉強になりました。



                         投稿一覧に戻る