Тъкмо започвам да използвам Rcpp
, така че съжалявам, ако пропускам лесна стъпка или нещо подобно... Опитах това от ?sourceCpp
library(Rcpp)
sourceCpp(code='
#include <Rcpp.h>
// [[Rcpp::export]]
int fibonacci(const int x) {
if (x == 0) return(0);
if (x == 1) return(1);
return (fibonacci(x - 1)) + fibonacci(x - 2);
}'
)
До fibonacci(46)
всичко е наред, но след това получавам:
> fibonacci(47)
[1] -1323752223
> fibonacci(48)
[1] 512559680
> fibonacci(49)
[1] -811192543
> fibonacci(50)
[1] -298632863
Според тази страница горното трябва бъда:
47 : 2971215073
48 : 4807526976
49 : 7778742049
50 : 12586269025
Получавате ли същия резултат?
?sourceCpp
. Въпреки че вероятно бих могъл да направя функцията на фибоначи сам, аз не съм толкова добър в C :-( - person Michele   schedule 18.09.2013#include
, който се добавя (заедно с други скелета) отsourceCpp()
. - person Dirk Eddelbuettel   schedule 18.09.2013?
- person Simon O'Hanlon   schedule 18.09.2013sourceCpp()
, което е необичайно. Бих дефинирал функция на Фибоначи в един дълъг ред чрезcppFunction()
. - person Dirk Eddelbuettel   schedule 18.09.2013cppFunction('double fib(double x) { if (x<2) return x; else return fib(x-1)+fib(x-2); }')
- person Dirk Eddelbuettel   schedule 18.09.2013Rcpp
е ваш, нали? Но вие казвате, че бих дефинирал Фибоначи ... сякаш имате предвид различно, така че предполагам, че някой друг е написал R Doc заRcpp
- person Michele   schedule 18.09.2013