【问题标题】:How to factorize a big integer如何分解一个大整数
【发布时间】:2015-09-03 09:38:50
【问题描述】:

我正在尝试使用以下代码分解一个大整数:

library(gmp)
as.bigz(factorize( 113423713055421844361000443))
Big Integer ('bigz') object of length 38:
#  [1] 2       2       2       2       2       2       2       2       2       2       2
# [12] 2       2       2       2       2       2       2       2       2       2       2
# [23] 2       2       2       2       2       2       2       2       2       2       2
# [34] 2       3       647     1134247 2998823

这显然不是正确的分解,因为我的整数是奇数,但 factorize 返回 2 作为因子。有什么问题?

【问题讨论】:

    标签: r algorithm bigdecimal floating-point-precision


    【解决方案1】:

    尝试使用字符串创建 bigz 值:

    > factorize(as.bigz("113423713055421844361000443"))
    Big Integer ('bigz') object of length 4:
    [1] 67003      29881      9119521    6212157481
    

    我相信你的问题是当你输入数字文字时,R 将它存储在浮点表示中,失去精度。您需要先创建 bigz 表示,然后再将其传递给因式分解,并且为了保持完全精度,您必须将其作为字符串传递给 as.bigz

    【讨论】:

      猜你喜欢
      • 2011-06-19
      • 1970-01-01
      • 2016-01-06
      • 2019-03-24
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多