问题标签 [bernoulli-numbers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 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])?
When the first row is 1, 1/2 , 1/3 .... Here's an image to support the question.
Does there exist a more efficient approach than the naive O(n^2) approach?
I came across this when studying Bernoulli numbers and then consequently on reaching "Akiyama–Tanigawa algorithm".
One of the ways could be simple precomputing the results and storing them in a table. Since Bernoulli numbers grow very quickly, for most practical purposes we wouldn't need Bernoulli numbers for much larger n. Consider Bernoulli(400)- its around -(10^550).
But looking at it only algorithmically, is there a better approach than the O(n^2) one?
c++ - 带有 Boost 的伯努利数与 Mathematica 不同
在最新的 Boost 中,有一个计算伯努利数的函数,但我错过了它的确切作用。
例如Mathematica
,Pythonmpmath
并www.bernoulli.org
说:
但升压版
返回0.166667
为什么会有这种差异?我错过了什么吗?
java - Java-以新方法实现伯努利数
我在编辑具有BigRational 辅助类的 Java 中现有的伯努利数实现时遇到问题。最初的实现将伯努利数的计算放在 Main 方法中。我创建了一个新类来返回单个伯努利数的计算。我究竟做错了什么?
我希望这样做是为了计算偶数的Zeta 函数。
我创建的测试方法通过 BigDecimal 计算该等式的分母。我看到一个即将出现的问题,我是否需要将 Bernoulli BigRational 转换为 BigDecimal?我可能需要调整我找到的BigRational 类。
smalltalk - 伯努利数法输入错误 > 1
我正在尝试实现一个返回 n:th 伯努利数的方法,如下所示:
(我已尽力评论代码)。
但是,对于输入 n > 1,我得到了错误的伯努利数:
- n = 0 --> 1(正确)。
- n = 1 --> -1/2(正确)
- n = 2 --> 2/3(应该是 1/6)
- n = 3 --> -7/12(应该是 0)
- n = 4 --> 77/45(应该是-1/30)
- n = 5 --> 3157/9720 (应该是 0)
我的猜测是我以某种方式错误地实现了内部循环或内部循环,因为输入 n < 2 正常工作(并且 n < 2 完全跳过了内部循环)。我正在使用的伪代码也可能不正确,但我对此表示怀疑,因为我昨天才让它在 COBOL 中工作。binom 方法工作正常,我自己测试过。
即便如此,我还是不明白为什么这不能正常工作。任何帮助表示赞赏。
function - Ada95:伯努利数的递归函数
我正在尝试编写一个函数来计算正伯努耶数的第 N 个值。我想用这个递归公式来做:
到目前为止我已经尝试过:
其中 F 是阶乘函数(即 F(N) 表示 N!)。我认为循环有问题,但我不知道它是什么。
我不能发布图片,但这里有一个等式的链接(底部): https ://wikimedia.org/api/rest_v1/media/math/render/svg/2571d0a7024741c0a0ad0eb32cc9333f6024c528
c - 在 Windows 10 Pro 上使用 CodeBlocks 在 C 中计算伯努利 nTh 数的最佳方法
晚安,我正在从事一个需要计算 n 阶伯努利数的项目。我在互联网上详尽地尝试了很多算法,主要是在 C++ 中,这对我没有用处。而且我总是会得到编译错误或错误的数字结果!最快的计算方法是什么?奇数总是 0.00000,我需要计算任何偶数...我只需要我放在函数上的数字的结果,不需要像我在互联网上看到的每个算法一样列出 nTh 之前的数字做。我最后一次尝试编译错误,在修复后给我上面的错误答案......是的,对于那些会问我是否将库放在代码上的人,是的,我做到了!问题不在于库,而是错误的算法。我正在使用C在 Code::Blocks for Windows 10 Pro 上的 GCC mingw 32 位。
我以前从未使用过这种类型的东西,但在我正在工作的系列中需要伯努利数。所以我不太确定我在做什么来找到这些数字。这不是我的区域。可能我在这里做了一些愚蠢的事情。
我会告诉你我是如何陷入伯努利这个问题的,我最初是在研究黎曼泽塔函数。我编写了 C 代码,但它只适用于 >1,所以我开始研究如何计算负奇数,我看到公式中有 Bn(N 阶伯努利数)!我不知道如何计算伯努利数,当我开始编写 Zeta 函数时,我对伯努利一无所知!
python-3.x - 如何使用 numpy 有效地执行数十亿次伯努利提取?
我正在写一篇关于流行病学的论文,我必须在时间网络中模拟 SI 流行病。在每个时间步,都有一个概率 ~ Bernoulli(beta) 在受感染节点和易感节点之间执行提取。我正在使用 np.random.binomial(size=whatever, n=1, p=beta) 让计算机做出决定。现在,我必须从每个节点开始,在同一个网络中模拟流行病。这应该重复 K 次以获得每个节点的一些统计相关结果,并且由于时间网络也是随机的,所以一切都应该重复 NET_REALIZATION 次。
因此,在 N = 100 的网络中,如果 K=500 且 NET=REALIZATION=500,则该流行病应该重复 25,000,000 次。如果 T=100,则意味着每组 SI 对有 2,500,000,000 次提取(当然随时间变化)。如果 beta 很小(通常是这种情况),这会导致计算非常耗时。如果你认为,对于我的电脑来说,伯努利提取需要 3.63 µs,这意味着我必须等待几个小时才能得到一些结果,这确实限制了我的论文的发展。问题是超过一半的时间都花在了随机抽取上。我应该使用 numpy,因为提取的结果与其他数据结构交互。我尝试使用 numba,但它似乎并没有提高提取速度。有没有更快的方法来获得相同的结果?我正在考虑永远做一次非常大的提取,比如 0 和 1 的 10 ^ 12 次提取,然后为每个不同的模拟导入其中的一部分(这应该针对几个 beta 值重复),但我想知道如果有更聪明的举动。
感谢帮助
r - 对角线条目为 0 且所有其他条目为 0 和 1 的随机矩阵
我尝试在 R 中使用 rbern 函数,但我意识到对角线条目并非全为 0。
statistics - n 个相关伯努利变量的分布是什么?
对于独立的伯努利 X_1, X_2, ..., X_n,最大分布为
Y=max{X_1,X_2,⋯,X_n }~Bernoulli(1-∏_(i=1)^n▒(1-p_i ) )
但是对于相关伯努利,最大分布是多少?有什么建议吗?非常感谢。