【问题标题】:Ruby Bignum broken?Ruby Bignum 坏了?
【发布时间】:2015-10-16 20:05:05
【问题描述】:

我正在尝试计算大数的阶乘。

def fact(n)
  num = 1
  for i in 1..n
     num *= i
  end
  num
end
fact(90000)

使用 Ruby 2.2.0 并使用上面的代码,我得到的结果以一堆 0 结尾,正如预期的那样,但是对于 2.1.1p76,我得到一个以 ...818500998068961280 结尾的数字。这是 Ruby 的问题吗?

【问题讨论】:

  • 无法复制。
  • 红宝石代码中的最后一个num ??
  • Ruby 使用隐式返回,我返回 num。 @steenslag
  • @Sam-Graham 它应该是end
  • 哦,快点,更正了,我在你的捕获之前鞠躬。 @steenslag

标签: ruby biginteger bug-reporting


【解决方案1】:

这似乎是ruby 2.1.1p76 的问题。我能够重现以67818500998068961280 结尾的数字。但是它在2.2.0 中似乎工作正常。

【讨论】:

  • 顺便说一句。该错误已在 2.1.5 中修复(请参阅关于 Bug #10465 的第 5 条条目)或更新版本(如果不能使用 2.2)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 2013-11-17
  • 2011-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多