我在网上浏览了具体数学的内容。我至少听过其中提到的大多数功能和技巧,但是有一整节关于特殊编号。这些数字包括斯特林数,欧拉数,调和数等。现在,我从未遇到过这些奇怪的数字。它们如何帮助解决计算问题?它们通常在哪里使用?
最佳答案
这些数字中的大多数都对某些种类的离散结构进行计数(例如,斯特林数字对子集和周期进行计数)。这样的结构,以及因此的这些序列,在算法分析中隐含地出现。
an extensive list at OEIS列出了具体数学中几乎所有出现的序列。该列表的简短摘要:
您可以浏览相应序列的OEIS页面,以获取有关这些序列的“属性”的详细信息(尽管不是您最感兴趣的应用程序)。
另外,如果您想在算法分析中看到这些序列的实际用法,请翻阅Knuth的《计算机程序设计艺术》的索引,您会发现许多对这些序列“应用程序”的引用。约翰·D·库克(John D. Cook)已经提到了斐波那契和调和数的应用。这是更多示例:
斯特林循环数出现在对数组最大元素进行查找的标准算法分析中(TAOCP第1.2.10节):查找最大值时必须将当前最大值更新多少次?事实证明,在
k
元素数组中找到最大值时,需要更新n
次的最大值为p[n][k] = StirlingCycle[n, k+1]/n!
。从中可以得出,平均而言,大约需要Log(n)
更新。Genocchi数与计数“稀”的BDDs的数目有关(TAOCP 7.1.4练习174)。
关于math - 具体数学在哪里提到了 "Special Numbers"?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/901761/