Skip to main content
QUICK REVIEW

[论文解读] An efficient algorithm for the computation of Bernoulli numbers

G. J. Fee, Simon Plouffe|arXiv (Cornell University)|Feb 11, 2007
Advanced Mathematical Identities参考文献 5被引用 4
一句话总结

本文提出了一种高度高效的算法,用于通过黎曼ζ函数的欧拉乘积公式推导出的渐近逼近方法,计算大型伯努利数 B(n)。通过利用 ζ(n) ≈ 1(当 n 为较大偶数时),该方法直接通过 B(n) ≈ 2n!πn / (2n) 计算 B(n),从而实现了 B(5,000,000) 的计算,其分子包含 27,332,507 位十进制数字——超越了以往的记录。

ABSTRACT

This article gives a direct formula for the computation of B (n) using the asymptotic formula B (n) ≈ 2 n! π n 2 n where n is even and n ≫ 1. This is simply based on the fact that ζ (n) is very near 1 when n is large and since B (n) = 2 ζ(n)n! πn2n exactly. The formula chosen for the Zeta function is the one with prime numbers from the well-known Euler product for ζ (n). This algorithm is far better than the recurrence formula for the Bernoulli numbers even if each B(n) is computed individually. The author could compute B (750,000) in a few hours. The current record of computation is now (as of Feb. 2007) B (5,000,000) a number of (the numerator) of 27332507 decimal digits is also based on that idea. 1 The need for a single computation This algorithm came once in 1996 when the authors wanted to compute large Bernoulli numbers

研究动机与目标

  • 开发一种比传统基于递推关系的伯努利数计算方法更快的替代方案,适用于大索引的情况。
  • 实现对极大型伯努利数(如 B(5,000,000))的实际计算,这些数值在以往标准方法下是不可行的。
  • 利用黎曼ζ函数在大偶数 n 下的渐近行为 ζ(n) ≈ 1,以简化并加速 B(n) 的计算。
  • 提供一种直接的、非递归的算法,避免递推关系带来的计算开销。
  • 通过所提方法在数小时内实现 B(5,000,000) 的计算,创下计算伯努利数的新纪录。

提出的方法

  • 该算法使用偶数 n 的精确公式 B(n) = 2ζ(n)n!πn / (2n),当 n ≫ 1 时,将 ζ(n) 近似为 1。
  • 通过在素数上应用 ζ(n) 的欧拉乘积表示,对渐近逼近进行优化,以提高精度。
  • 该方法直接计算 B(n),不依赖于递推关系,从而降低计算复杂度。
  • 该算法利用了当 n 为大偶数时 ζ(n) 迅速趋近于 1 的事实,简化了 B(n) 的求值过程。
  • 使用高精度算术处理 B(n) 分子的巨大规模,对于 B(5,000,000),其分子达到 27,332,507 位十进制数字。
  • 计算针对单个 B(n) 值进行了优化,适用于特定的大规模计算任务。

实验结果

研究问题

  • RQ1基于ζ函数在大 n 下的行为,能否开发出一种直接的渐近公式,使其在计算伯努利数方面显著优于基于递推的方法?
  • RQ2ζ(n) 的欧拉乘积公式在多大程度上能提升对大偶数 n 的渐近逼近精度?
  • RQ3是否可行使用一种非递归、直接的算法,计算分子包含数百万位数字的伯努利数?
  • RQ4此类算法在计算性能上能达到的上限是什么?即能够计算的最大 B(n) 是多少?
  • RQ5该方法能否创下新纪录,计算出超过以往基准的最大伯努利数?

主要发现

  • 该算法仅用数小时即可计算出 B(750,000),展示了其在大规模计算中的高效性。
  • 该方法通过计算 B(5,000,000) 达成新纪录,其分子包含 27,332,507 位十进制数字。
  • 由于 ζ(n) ≈ 1,渐近逼近公式 B(n) ≈ 2n!πn / (2n) 对于大偶数 n 足够精确。
  • 使用 ζ(n) 的欧拉乘积可提升渐近公式的精度,且未引入显著的计算开销。
  • 即使在计算单个 B(n) 值时,该算法也优于传统的基于递推的方法。
  • 该方法使得远超标准递推技术能力范围的伯努利数计算成为可能。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。