被问了这个问题,一开始脑子懵了。
最后用 2 去分解 100!,能确定 100! > 2 的 474 次方 ,所以必然大于 2 的 256 次方。
但是总觉得这个办法是笨方法,想看看大家有没有什么更好的方案?
1
coderluan 2020-04-03 10:50:04 +08:00
斯特林公式。
|
2
momocraft 2020-04-03 10:50:33 +08:00
log(N!) 在 N 较大时约等于 N(logN - 1) (斯特林公式)
log(10)约等于 2.3 log(2)约等于 0.7 所以 log(100!) 约等于 100 * 3.6 log(2^256) 约等于 256*0.7 |
3
geelaw 2020-04-03 10:51:23 +08:00 6
“阶乘”,最不具有技巧性的方法是使用 Stirling 公式进行估计。
然而对于这个问题来说 Stirling 公式或者因数分解都是小题大做了,因为 100! >= 8^(100 - 8) = 2^276 > 2^256 。 |
4
kenniewwwww 2020-04-03 11:48:51 +08:00 via iPhone
@geelaw 求问第一个不等号是怎么来的阿
|
5
Woodywuuu OP @kenniewwwww
应该是因为 8 之后的数字都可以提取一个 8,并保证>1 |
8
SuperManNoPain 2020-04-03 15:31:56 +08:00
@geelaw 喵啊
|
10
pyfan 2020-04-03 19:51:52 +08:00
@kenniewwwww 那个是 100 的阶乘,不是不等号
|