Knuth的基本算法的这一说法是否仍然适用?[关闭]


10

从某种意义上说10!(十阶乘数)表示实际可计算的事物与不可计算的事物之间的近似分界线。

这摘自Knuth的TAOCP基本算法书(1973)。这仍然是有效的声明,还是已经使计算能力过时了?


我不清楚这是什么意思-10!只有几百万。对于直接理解而言太大了,但即使使用笔和纸也很难计算。
hobbs 2013年

11
@hobbs并不是说要计算10!的值,而是要对约10 的值进行计算东西。也就是说,如果您的方法需要大约10多个!<工作单元>,是时候找到一种新方法了。
AakashM 2013年

Answers:


21

这仍然是合理的。

10!= 3,628,880。此后的每一步至少增加一个数量级。

(fact 10)
3628800

(fact 11)
39916800 -- about 40 million

(fact 12)
479001600 -- almost 500 million

(fact 13.0)
6227020800.0 -- over 6 billion

很快,您正在谈论国会的支出数字。


15

幸运的是,这位优秀的教授仍然与我们在一起,确定确切答案的最佳方法是写信并提出自己的意见。

就是说,我认为绝对数字并不像阶乘代表的功能那么重要。不管Knuth当时是否意识到这一点,他用该陈述建立的模型都非常适合回顾过去几十年的实际计算结果,并展望未来的发展过程。

1973年,我们生成,存储,传输和处理数据的能力有限,不足以达到10个!一个合理的“远方”人物可以拍摄。我怀疑Knuth(或其他任何人)是否能够预测自那时以来我们所享受的几乎所有事物的指数增长,但是析因因子是否很好地适合了实际数字。

我亲眼目睹了这一点:十年前,我参与了一个项目,该项目正在开发存储和处理约5000万条记录的方法,与此同时,我们也在思考如何做更多的数量级。十年后,我正在做一个类似的项目。我的目标数字发生了变化,全都以阶乘的方式发生了变化:

                      2002           2012
Small Test .......  9! / 362K ... 10! / 3.6M
Large Test ....... 10! / 3.6M ... 11! /  40M
Capacity Goal .... 11! /  40M ... 12! / 479M
Capacity Dream ... 12! / 479M ... 13! / 6.3B

从事这两个项目的小组的数字比这些数字要大得多,但是阶乘并不是很遥远。世界各地的Google和Facebook拥有执行我当前项目梦dream以求的事情的资源,但是从我所坐的位置来看,13!十年之内似乎并不遥不可及。

我本来并没有考虑过1992年的大量数据,但是事后看来,我可能一直在研究所有因素,而不是因子分解。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.