Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to print 1000 decimals places of pi value?

Tags:

math

r

pi

I would like to print e.g. 1000 or 2000 or 15000 decimals of pi value using R?

Now I get only six

> pi
[1] 3.141593

How to achieve this?

like image 894
jrara Avatar asked Jun 04 '11 05:06

jrara


People also ask

What is the value of pi to 1000 decimal places?

3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679 ... PI/4 = 1/1 - 1/3 + 1/5 - 1/7 + ...

How do you print the value of pi?

const long double pi = acosl(-1.0L); printf("%. 20Lf\n", pi);

How do you calculate decimals of pi?

There are essentially 3 different methods to calculate pi to many decimals. One of the oldest is to use the power series expansion of atan(x) = x - x^3/3 + x^5/5 - ... together with formulas like pi = 16*atan(1/5) - 4*atan(1/239). This gives about 1.4 decimals per term.

What are the first 100 decimal places of pi?

The first 100 digits of pi are 3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679. The value of pi starts with a 3 followed by a decimal point.


2 Answers

Using the R package bc (which is available at the foregoing link, not on CRAN):

> library(bc)
> bc("4 * a(1)", scale = 1000)
[1] "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201988"
like image 53
G. Grothendieck Avatar answered Sep 28 '22 06:09

G. Grothendieck


If you don't want to do the calculation yourself then you could look the number up. For example

pie <- read.csv("http://oeis.org/A000796/b000796.txt", header=FALSE, sep=" ")
dig <- 75 # up to 20000 digits 
pistring <- paste(c(pie[1,]$V2, ".", head(pie[-1,], dig-1)$V2), collapse="")

would produce

> pistring
[1] "3.14159265358979323846264338327950288419716939937510582097494459230781640628"
like image 23
Henry Avatar answered Sep 28 '22 08:09

Henry