如何打印pi值的1000个小数位?

问题描述

| 我想打印例如使用R将pi值的1000或2000或15000个小数 现在我只有六个
> pi
[1] 3.141593
如何实现呢?     

解决方法

        使用R包bc(可在前述链接上获得,而不是CRAN上提供):
> library(bc)
> bc(\"4 * a(1)\",scale = 1000)
[1] \"3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201988\"
    ,        如果您不想自己进行计算,则可以查找该数字。例如
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=\"\")
会产生
> pistring
[1] \"3.14159265358979323846264338327950288419716939937510582097494459230781640628\"
    ,        R与基础系统的浮点数据类型一起使用,浮点数据类型通常具有大约16位有效十进制数字。 如果您想要pi的很多位数,则需要将它们保存在某些此类构造的字符数组中。您几乎不能将少数几个容纳到R数值中。 如果您希望自己生成数字,则网络搜索将显示许多文章,概述了完成此工作的算法。或者,您可以找到很多站点,这些站点仅将pi列出到数十亿个数字。     ,        您无法打印不知道的数字。如果R仅携带16个十进制数字(典型的IEEE双精度),那么打印1000个数字将生成984个无意义的数字。 如果您使用长精度算术工具,则可以使用此处看到的一系列方法之一或其他方法(例如Brent-Salamin算法)来生成所需的任意位数。作为测试,我最近仅用几次迭代就使用该方法计算了超过250,000位的pi。 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019 8 ...     ,        这很有可能。请下载软件包Rmpfr。 然后,使用以下命令:
library(Rmpfr)

Const(\"pi\",3333)
它将给出正确的pi值至1000个小数位。     ,        不确定是否可以打印1000或2000,但是可以通过这种方式指定要打印的位数:
   print(pi,digits=10)
    ,        最容易使用的算法之一可能是龙头。我不知道
R
,但足以实施此处的想法。