圆周率的数字
2009年2月20日
8对“圆周率的数字”的回应
-
2009年9月27日凌晨1点58分 我的解决方案,用C编写: http://codepad.org/WOEQnbTt 此版本根据“计算低内存pi的第n位小数”中描述的方法直接计算所请求的数字: http://numbers.computation.free.fr/Constants/Algorithms/nthdecimaldigit.pdf (我必须承认,我也稍微看了一下 http://numbers.computation.free.fr/Constants/Algorithms/nthdigit.html ) 它缺乏插口解决方案的简洁和优雅,但在效率上弥补了它的不足。 插口版本运行良好,直到主内存用完并开始分页,此时性能真的遇到了瓶颈。 在我的电脑上,这一点介于第20000位(取1:48)和第50000位(我在3.5小时后将其删除)之间。 为了进行比较,此解决方案在约12秒内返回第50000位。 -
2011年5月17日下午6:07 我修改了arccot found的定点方法 在这里 并将其与维基百科发现的最有效的机器式公式结合使用 在这里 我的提交 -
2011年6月29日下午1:06 这似乎是一个非常有趣的练习,但我无法理解这个插口算法是如何工作的。 我读了PDF文件,但我无法理解图表中的数学,对于一个没有大量数学背景的人来说,有更容易的解释吗? 干杯, -萨姆 -
2011年7月5日下午4:11 虽然不好看,但很管用: #!/ usr/bin/perl $| = 1; 推(@B,0); $计数器=3; 对于($i=0;$i<=33223;$i++){ 推(@A,$i); push(@余数,2); push(@B,$counter); $计数器+=2; } 对于($x=1;$x=1;$i-){ $m10[$i]=$余数[$i]*10; $sum[$i]=$m10[$i]+$carried[$i]; $余数[$i]=$总和[$i]%$B[$i]; $携带[$i-1]=(($sum[$i]-$剩余[$i]/$B[$i])*$A[$i); } $m10[0]=$余数[0]*10; $sum[0]=$m10[0]+$carried[0]; $余数[0]=$sum[0]%10; $predigit=int($sum[0]/10); push(@predigits,$predigit); 如果($predigit<9){ 对于($i=0;$i<((标量@predigits)-1)$ i++){ 打印$predigits[$i]; } undef@predigits; push(@predigits,$predigit); } 如果($predigit==10){ 对于($i=0;$i<((标量@predigits)-1)$ i++){ if($predigits[$i]==9){打印0;} 其他{ $predigits[$i]=$predigins[$i]+1; 打印$predigits[$i]; } } undef@predigits; push(@predigits,0); } } -
2012年5月20日凌晨1时23分 Python语言: 正在运行: -
2012年5月20日凌晨1:28 好奇的是,前1000个数字都是(从最后一个帖子上跑掉了……) -
2012年6月29日下午8:31 https://github.com/ftt/programming-praxis/blob/master/20090220-the-digits-of-pi/pi.py