我正在尝试实施以下问题的解决方案: 对于[1,100]中的a和[1,100]中的b,对每个a和b执行a^b。我们可以获得多少独特的结果?Project Euler#29 in R
在Python中,我可以解决这个问题,我得到了正确的答案,但是当我尝试R实现时,我无法得到正确的答案。
这里是我的代码:
lista=c()
for (b in 2:100){
for (a in 2:100){
elemento=a^b
if (!is.element(elemento,lista)){
lista=c(lista,elemento)
}
}
}
print(length(lista))
这是正确的答案,但我要说有得到它有点运气。虽然你将整数传递给'outer',它会返回一个数字矩阵......还要注意100^100是如何大于'.Machine $ integer.max'。如果OP想要认真对待欧拉项目,他将不得不为大整数建立一个图书馆。当他陷入更困难的问题时,他将能够重复使用和改进。 – flodel
@ flodel你是对的,包'gmp'可以帮助在这种情况下,很好的一点, – dickoa
@ flodel。我打算推荐'bit64'软件包,但是(64位整数)只能使我们达到2^62 ... –