Question Comment imprimer 1 000 décimales de valeur pi?


Je voudrais imprimer par exemple 1000 ou 2000 ou 15000 décimales de valeur pi en utilisant R?

Maintenant, je n'ai que six

> pi
[1] 3.141593

Comment y parvenir?


14
2018-06-04 05:32


origine


Réponses:


Utiliser le paquet R avant JC (disponible sur le lien précédent, pas sur CRAN):

> library(bc)
> bc("4 * a(1)", scale = 1000)
[1] "3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201988"

11
2018-06-04 17:07



Si vous ne voulez pas faire le calcul vous-même, vous pouvez regarder le numéro. Par exemple

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="")

produirait

> pistring
[1] "3.14159265358979323846264338327950288419716939937510582097494459230781640628"

8
2018-06-04 10:58



R fonctionne avec le type de données à virgule flottante du système sous-jacent, qui comporte généralement environ 16 chiffres décimaux significatifs.

Si vous voulez beaucoup de chiffres de pi, vous devrez les conserver dans un tableau de caractères de telle construction. Vous ne pouvez simplement pas insérer plus d'une poignée dans une valeur numérique R.

Si vous souhaitez générer les chiffres vous-même, une recherche sur le Web affichera de nombreux articles décrivant les algorithmes nécessaires pour effectuer le travail. Ou vous pouvez trouver beaucoup de sites qui listent juste pi à un milliard de chiffres.


5
2018-06-04 05:39



Vous ne pouvez pas imprimer les chiffres que vous ne connaissez pas. Si R ne porte que 16 chiffres décimaux (un double IEEE typique), alors l'impression de 1 000 chiffres générera 984 chiffres sans signification.

Vous pouvez utiliser l'une des séries ou d'autres méthodes vues ici (par exemple, l'algorithme Brent-Salamin) pour générer autant de chiffres que vous voulez, SI vous utilisez un outil pour l'arithmétique de précision longue. Comme test, j'ai récemment calculé plus de 250 000 chiffres de pi avec cette méthode en seulement quelques itérations.

3,14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019 8 ...


5
2018-06-04 14:58



C'est très possible. Veuillez télécharger le package Rmpfr.

Ensuite, utilisez ce qui suit:

library(Rmpfr)

Const("pi", 3333)

Il donnera une valeur de pi correcte à 1000 décimales.


1
2017-08-10 17:25



Vous ne savez pas si vous pouvez imprimer 1000 ou 2000, mais vous pouvez ainsi spécifier combien de chiffres sont imprimés:

   print(pi, digits=10)

0
2018-06-04 05:36



Un des algorithmes les plus faciles à utiliser est probablement un tourillon. Je ne sais pas R mais il est probablement assez bon pour mettre en œuvre les idées ici.


0
2018-06-04 13:57