gpt4 book ai didi

java.lang.ArithmeticException : Negative exponent in jruby

转载 作者:行者123 更新时间:2023-12-01 11:26:30 27 4
gpt4 key购买 nike

我有以下 JRuby 代码:

def knuth(a, n, b)
if n ==1
r = a**b
else
r = 1
b.times do
r = knuth a, n-1, r
end
end
return r
end
k = knuth 3, 4, 5
puts k
puts k.size

但它给了我

java.lang.ArithmeticException: Negative exponent

知道为什么吗?

我在 Windows 上使用 jruby-9.0.0.0.pre2-p0

最佳答案

这里有两件事在起作用。首先,在 JVM 中,所有数字都经过签名。因此,当 r 变得足够大以致于高位被设置时,数字实际上变为负数,从而产生错误。第二件事是,每次执行 b.times 循环时,r 都会被重新分配,以便在下一次迭代期间 r 的值传递给 knuth 的值要大得多,导致 r 的新值再次大幅增加,依此类推,直到 r 变为负数。

关于java.lang.ArithmeticException : Negative exponent in jruby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30765980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com