我正在尝试计算 2**1000 并对数字的值求和。出于所有意图和目的,它seems就像我有正确的方法但错误的答案,我不确定是否有特殊的方法来进行求和,或者我的选择可能是混乱的。
无论如何,R 中的 2**1000 给出:1.072e+301。我用了
options("scipen"=400, "digits"=4)
摆脱科学记数法(因为我们想要数字),这给了我:
10715086071862673211222842640062602864002646240220400600628246062604626466468802860684246408802204448642628020644428680866666080884644840024840004280840848880462604626804200880464480884860464420284266864402822668802420668620402620400466086288824662642224206428624064400880244462828666486484022626226666
所以我做了一个天真的事情并对这些数字进行 sum() :
sum(1,0,7,1,5,0...)
但我得到的答案是1200,这是不正确的。我无法想象 sum 函数会如何返回一些奇怪的东西,所以我假设这些选项搞砸了指数结果?
您可以使用gmp
处理大整数的库:
library(gmp)
bigNum <- as.bigz(2)^1000
# Now we want to split into characters so we can sum the numbers:
chars <- as.integer(strsplit(as.character(bigNum), "")[[1]])
sum(chars)
# 1366
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)