如何比较 100 的阶层和 2 的 256 次方?

2020-04-03 10:38:16 +08:00
 Woodywuuu

被问了这个问题,一开始脑子懵了。
最后用 2 去分解 100!,能确定 100! > 2 的 474 次方 ,所以必然大于 2 的 256 次方。
但是总觉得这个办法是笨方法,想看看大家有没有什么更好的方案?

1993 次点击
所在节点    问与答
10 条回复
coderluan
2020-04-03 10:50:04 +08:00
斯特林公式。
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
geelaw
2020-04-03 10:51:23 +08:00
“阶乘”,最不具有技巧性的方法是使用 Stirling 公式进行估计。

然而对于这个问题来说 Stirling 公式或者因数分解都是小题大做了,因为 100! >= 8^(100 - 8) = 2^276 > 2^256 。
kenniewwwww
2020-04-03 11:48:51 +08:00
@geelaw 求问第一个不等号是怎么来的阿
Woodywuuu
2020-04-03 12:01:19 +08:00
@kenniewwwww
应该是因为 8 之后的数字都可以提取一个 8,并保证>1
jakezh
2020-04-03 12:41:58 +08:00
@geelaw 妙啊
blackshow
2020-04-03 14:23:22 +08:00
@geelaw #3 妙啊
SuperManNoPain
2020-04-03 15:31:56 +08:00
@geelaw 喵啊
shikimoon
2020-04-03 15:38:42 +08:00
@geelaw 罗辑大佬还是厉害。
pyfan
2020-04-03 19:51:52 +08:00
@kenniewwwww 那个是 100 的阶乘,不是不等号

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/658913

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX