project-euler–problem 65
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
The square root of 2 can be written as an infinite continued fraction.
\( \sqrt{2} = 1+\frac{1}{2+\frac{1}{2+\frac{1}{2+\frac{1}{2+?}}}} \)
The infinite continued fraction can be written, √2 = [1;(2)], (2) indicates that 2 repeats ad infinitum. In a similar way, √23 = [4;(1,3,1,8)].
It turns out that the sequence of partial values of continued fractions for square roots provide the best rational approximations. Let us consider the convergents for √2.
\( 1+\frac{1}{2} = 3/2 \)
\( 1+\frac{1}{2+\frac{1}{2}} = 7/5 \)
\( 1+\frac{1}{2+\frac{1}{2+\frac{1}{2}}} = 17/12 \)
\( 1+\frac{1}{2+\frac{1}{2+\frac{1}{2+\frac{1}{2}}}} = 41/29 \)
Hence the sequence of the first ten convergents for √2 are:
1, 3/2, 7/5, 17/12, 41/29, 99/70, 239/169, 577/408, 1393/985, 3363/2378, …
What is most surprising is that the important mathematical constant,
e = [2; 1,2,1, 1,4,1, 1,6,1 , … , 1,2k,1, …].
The first ten terms in the sequence of convergents for e are:
2, 3, 8/3, 11/4, 19/7, 87/32, 106/39, 193/71, 1264/465, 1457/536, …
The sum of digits in the numerator of the 10th convergent is 1+4+5+7=17.
Find the sum of digits in the numerator of the 100th convergent of the continued fraction for e.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | e.expand <- function(n) {
e0 <- 2
e <- c(1,2,1)
add <- c(0,2,0)
len <- floor(n/3)-1
x <- sapply(0:len, function(i) add * i) + e
x <- as.vector(x)
res <- c(e0, x)
return(res)
}
get.fraction <- function(x) {
## 1/(x0 + a/x1)
n <- length(x)
x1 <- x[n-1] * x[n-2] + 1
a <- x[n-2]
for (i in (n-2):1) {
old.x1 <- x1;
x1 <- x[i] * x1 + a
a <- old.x1
}
res <- list(numerator=x1, denumerator=a)
return (res)
}
e <- e.expand(100)
res <- get.fraction(e)
numerator <- as.character(gmp::as.bigz(res$numerator))
s <- sum(as.numeric(unlist(strsplit(numerator, ""))))
print(s) |
Related Posts
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.