加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何使用Bash命令计算pi

发布时间:2020-12-15 18:49:02 所属栏目:安全 来源:网络整理
导读:我正在学习bash脚本.在探索数学函数时,我遇到了一个计算pi值的命令. seq -f '4/%g' 1 2 99999 | paste -sd-+ | bc -l 虽然我了解基本seq命令的工作原理,但我无法理解上述命令的工作原理.有谁能澄清一下它是如何工作的? 这使用Gregory-Leibniz系列计算π的值
我正在学习bash脚本.在探索数学函数时,我遇到了一个计算pi值的命令.
seq -f '4/%g' 1 2 99999 | paste -sd-+ | bc -l

虽然我了解基本seq命令的工作原理,但我无法理解上述命令的工作原理.有谁能澄清一下它是如何工作的?

这使用Gregory-Leibniz系列计算π的值:

seq -f’4 /%g’1 2 99999生成分数:

4/1
4/3
4/5
4/7
4/9
4/11
4/13
4/15
4/17
4/19

糊管道糊料-sd-结合了具有替代分隔符的浆料 – 和.

最后,bc -l执行算术给出结果.

编辑:如the comment所述,这个序列收敛很慢. Machin’s formula具有明显的收敛速度:

对于tan-1(x)使用相同的扩展:

为了计算π,我们可以看到它使用系列的前50个项产生正确的值到50位数1:

${ echo -n "scale=50;"; seq 1 2 100 | xargs -n1 -I{} echo '(16*(1/5)^{}/{}-4*(1/239)^{}/{})';} | paste -sd-+ | bc -l
3.14159265358979323846264338327950288419716939937510

只需100个术语,π的值就精确计算到100位以上:

${ echo -n "scale=100;"; seq 1 2 200 | xargs -n1 -I{} echo '(16*(1/5)^{}/{}-4*(1/239)^{}/{})';} | paste -sd-+ | bc -l
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679

1 Pi

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读