午後のひとときに、数学の大小比較問題を解いてみよう。
問題
A = 100!
B = 2600
C = 50100
とするとき、A、B、Cを不等号で示せ。
シンキングタ~イム
大小比較をする場合、同じ見た目で、どこかしらを等しくしたりすることが大事ですね。
まず比較しやすいのが、BとCです。
B = 2600 = 26×100 = 64100
C = 50100
と、Bの指数を100にしてみると、
基数が64と50となって、
B > C
ということが解りますね。
ここまでは楽勝ですね。
残りのAが、
Bより大きいのか、
Cより小さいのか、
BとCの間なのか、
どうやって同じ土俵に持っていくかが鍵です。
AとCを比べてみましょう。
A = 100! = 100×99×98×…×51×50×49×…×2×1
C = 50100 = 50×50×50×…×50×50×50×…×50×50
というように、どちらも100個の積に書くことが出来ます。
そこで、A/Cと分数にしてみて、
A/C > 1ならば、A > C
A/C = 1ならば、A = C
A/C < 1ならば、A < C
となります。
A/C = (100/50)×(99/50)×(98/50)×…×(51/50)×(50/50)×(49/50)×…×(2/50)×(1/50)
ここで、
50/50を中心としてみて、
50/50 = 1
(51/50)×(49/50) = (50+1)(50-1)/(50×50) = (502-12)/502 < 1
(52/50)×(48/50) = (50+2)(50-2)/(50×50) = (502-22)/502 < 1
…
(98/50)×(2/50) = (50+48)(50-48)/(50×50) = (502-482)/502 < 1
(99/50)×(1/50) = (50+49)(50-49)/(50×50) = (502-492)/502 < 1
と掛け合わせてみると、いずれも1以下であることが解ります。
これより、
(100/50) > 1
(99/50)×…×(1/50) < 1
という関係まで解りましたが、
まだAとCの大小関係の確信までには至っていません。
そこで、
100/50 = 2
と一番小さい
(99/50)×(1/50) = (50+49)(50-49)/(50×50) = (502-492)/502 < 1
とを掛け合わせて、
= 2×(502-492)/502
= 2×(2500-2401)/2500
=2×99/2500
=198/2500 < 1
と計算を進めると、1以下であることが解りました。
よって、
A < C
となり、
答え B > C > A
すでに、ある程度エレガントに求められましたが、
あえて、log使って大小比較をするとなると、
階乗の近似式のスターリングの公式を使うことになるだろう。
n! ~ √2πn・(n/e)n
log10を取って、
log10(n!) ~ (1/2)log10(2πn)・nlog10(n/e)
= (1/2)log10(2)+(1/2)log10(π)+(1/2)log10(n)+nlog10(n)-nlog10(e)
桁数は整数なので、1を加えてガウス記号で括ると、
[log10(n!)+1] ~ [(1/2)log10(2)+(1/2)log10(π)+(1/2)log10(n)+nlog10(n)-nlog10(e)+1]
n=100を代入すると、
[(1/2)log10(2)+(1/2)log10(π)+(1/2)log10(102)+100log10(102)-100log10(e)+1]
~ [(1/2)×0.3010+(1/2)×0.4971+1×1+200×1-100×0.4343+1]
= [0.1505+0.24855+1+200-43.43+1]
= [158.96905]
= 158
100!は158桁
[2600+1] ~ [600log10(2)+1] = {600×0.3010+1]
= [181.6]
= 181
2600は181桁
[50100+1] ~ [100log10(50)+1] = [100log10(10)+100log10(5)+1]
= {100×1+100×0.6990+1]
= [100+69.9+1]
= [170.9]
= 170
50100は170桁
と計算出来ました。
問題文に、
log10(2) = 0.3010
log10(5) = 0.6990
log10(π) = 0.4971 ないし log10(3.14) = 0.4969
log10(e) = 0.4343 ないし log10(2.71) = 0.4330
といった情報が掲載されていることが前提になりますね。
実際の値を多倍長電卓で計算させると、
100! =
9332621544 3944152681 6992388562 6670049071 5968264381
6214685929 6389521759 9993229915 6089414639 7615651828
6253697920 8272237582 5118521091 6864000000 0000000000
00000000
2600 =
4149515568 8809929585 1240786369 1161151012 4462322424
3689999565 7329690652 8114129081 4639970704 8947103794
2881978866 1130078918 2395151075 4117753078 8687483411
3963687061 1818034015 0952368537 6
50100 =
7888609052 2101180541 1728565282 7862296732 0643510902
3004770278 9306640625 0000000000 0000000000 0000000000
0000000000 0000000000 0000000000 0000000000 0000000000
0000000000 0000000000
桁を数えやすいように10桁で区切りました。
log10の手計算も正しいということですね。
ではでは