如何从脚本生成到给定小数位数的 Pi?

Lan*_*nes 10 unix script command-line

有没有人有我可以轻松运行的脚本:

sh generatepi.sh 10000
Run Code Online (Sandbox Code Playgroud)

其中10000是生成的数量?(Pi) 小数位。

Gaf*_*aff 19

假设您的系统上有bc(基本计算器)实用程序,您可以使用以下命令和一些古老的数学来计算 ? 到 10,000 位小数:

echo "scale=10000; 4*a(1)" | bc -l
Run Code Online (Sandbox Code Playgroud)

这可能需要很长时间才能完成 10,000 个小数位。

打破命令...

  • scale=10000 - 这指定用于结果的小数位数
  • 4*a(1) - 这将返回 1 的反正切 [等于 45°:45 x (?/180),或 ¼?],然后乘以 4 得到 ?。
  • bc -l - 将完整的函数字符串通过管道传输到bc实用程序中,-l指定加载反正切函数a()所需的标准数学库。

要将其包装在您在问题中指定的脚本中,请使用您喜欢的编辑器编写以下内容并将其另存为generatepi.sh

#!/bin/bash
echo "scale=$1; 4*a(1)" | bc -l
Run Code Online (Sandbox Code Playgroud)

然后从chmod +x generatepi.sh您保存文​​件的文件夹中使用终端,这将授予脚本执行权限。语法是generatepi.sh [number of places]. 请注意,这使用了一种非常基本的参数处理方式,并且不会验证输入,因此请确保仅将正整数作为参数传递给它。

大多数 Linux 系统都应该有,bc但在某些情况下您可能需要安装它(例如Ubuntu上的apt-get,Gentoo上的emerge等)。还有一个用于 Windows 的 bc 端口