Linux上一个命令计算PI

在Windows上有super pi可以计算PI,在Linux上,我之前也写过 y-cruncher 工具可用于计算PI;其实,Linux上只需要使用 bc 这简单的命令行工具也可以计算PI。

bc 命令加上 -l 参数后,就可以使用sin/cos/atan等数学函数,其中:
a (x) The arctangent of x, arctangent returns radians. # 就是计算 atan() 反正切值。
由于tan(PI/4) = 1 ,所以 PI = 4*atan(1)

在bc中,用scale=100 这样的变量来控制计算结果的小数点后面的位数。

所以,echo “scale=10000; 4*a(1)” | bc -l 这个命令就可以表示计算PI保留小数点后1万位小数。

加上time命令对PI计算过程计时,演示如下:

我们可以看到通过bc这样计算,PI后1万位小数点精度,花费了143秒钟。

是的,就这么简单,用来简单测试一下单核CPU的计算能力也是挺直观的。
不过,我发现这种bc中调用a()的计算方法效率可能不高(耗时较多,且不能多线程、不能使用到AVX2之类的新制定),可以和我之前介绍y-cruncher工具比较一下。

参考资料:
man bc (搜索一下arctangent, scale等关键词)
y-cruncher: http://smilejay.com/2017/03/y-cruncher-a-cpu-test-benchmark/

master

Stay hungry, stay foolish.

发表评论

电子邮件地址不会被公开。 必填项已用*标注