【问题标题】:What is the most efficient way of finding the first element of the ith row when A[i,j]=j*(A[i-1,j+1]-A[i-1,j])?当 A[i,j]=j*(A[i-1,j+1]-A[i-1,j]) 时,找到第 i 行第一个元素的最有效方法是什么?
【发布时间】:2013-04-15 13:20:51
【问题描述】:

当第一行是 1, 1/2 , 1/3 .... 这是支持该问题的图像。

是否存在比简单的 O(n^2) 方法更有效的方法?

我在研究伯努利数时遇到了这个问题,然后在学习“Akiyama-Tanigawa 算法”时遇到了这个问题。

其中一种方法可能是简单地预先计算结果并将它们存储在表格中。由于伯努利数增长得非常快,对于大多数实际目的,我们不需要更大的 n 的伯努利数。考虑一下伯努利(400)-它大约是-(10 ^ 550)。

但仅从算法上看,有没有比 O(n^2) 更好的方法?

【问题讨论】:

  • 我建议将您的图形图像上传到 SO。
  • 编辑时单击图片图标(在顶部,从 {} 右侧)。如果图像对您来说太大,另请参阅here
  • 看起来好像需要大量的数学努力才能找到并证明更快的计算方法:en.wikipedia.org/wiki/…
  • 嗯...所以你的意思是说,如果不应用他们所应用的那种数学,就没有更有效的方法来解决这个问题?
  • @NikharAgrawal:我的意思是说,如果有一种简单的方法可以像那些论文那样有效地做到这一点,那么找到一种更难的方法来有效地做到这一点就不值得发表: -)

标签: algorithm math bernoulli-numbers


【解决方案1】:

第一个元素构成Bernoulli numbers 的序列。伯努利数的分子和分母分别使用A027641 序列和A027642 序列找到。这两个序列在​​它们各自的页面上都有封闭形式的和,可用于计算它们的项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 2021-04-09
    • 1970-01-01
    • 2012-10-20
    • 2021-11-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多