查看圆周率 Pi值 Pi的前百位 Pi的前百万位
Posted xiaofeng_37
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查看圆周率 Pi值 Pi的前百位 Pi的前百万位相关的知识,希望对你有一定的参考价值。
早上忽然看到PI的热搜,就想着看看PI的前一百位甚至更多位是多少,用spark-sql、presto和doris的pi()函数尝试了下,都只给出十几位,使用hadoop提供的example.jar能算但过于浪费算力,精确度也不会特别高,所以还是决定去网上白嫖已有的计算结果。
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、PI百万位在线查看网址
二、使用dos/shell取出数值
1. dos(Windows)
Win+R打开cmd,然后输入一下指令
# 数据一共20页 前19页均为5万多个
curl "https://www.piday.org/wp-json/millionpi/v1/million?action=example_ajax_request&page=1"
2. shell(Linux)
基本命令同上,不过可以使用其提供的其他指令实现其他功能
# 1. 预览
# 实测过程中,uri两侧必须使用单引号货双引号(双引号更佳)
# -s用于过滤链接信息
# -w '\\n'用于在响应末尾追加换行
curl -s -w '\\n' "https://www.piday.org/wp-json/millionpi/v1/million?action=example_ajax_request&page=1"
# 2. 统计每页数据量
# 输出首位有" 使用sed去除
$ curl -s "https://www.piday.org/wp-json/millionpi/v1/million?action=example_ajax_request&page=1" | sed 's/\\"//g' | wc
0 1 51199
$ curl -s "https://www.piday.org/wp-json/millionpi/v1/million?action=example_ajax_request&page=2" | sed 's/\\"//g' | wc
0 1 51199
$ curl -s "https://www.piday.org/wp-json/millionpi/v1/million?action=example_ajax_request&page=20" | sed 's/\\"//g' | wc
0 1 27221
# 3. 将20页数据写入一个文件
# 使用遍历实现,同上面的字符统计,不要使用-w '\\n'
for i in `seq 20`; do
curl -s "https://www.piday.org/wp-json/millionpi/v1/million?action=example_ajax_request&page=$i" | sed 's/\\"//g' >>pi.data
done
$ wc pi.data
0 1 1000002 pi.data
# 0行是因为末尾没有换行 不习惯可以手动追加一个
echo >> pi.data
$ wc pi.data
1 1 1000003 pi.data
回到今天的热搜 看能不能找到自己的生日
# 自己的生日自己说了算 永远十八 ~
# pi.data为0行,因为行尾没有换行符,所有一定要使用-o将匹配到的数据直接提取出来,不然如果匹配到还是会输出整个文件
$ egrep -o 2006 pi.data | head -3
2006
2006
2006
# 匹配数量统计
$ egrep -o 2006 pi.data | wc -l
93
以上是关于查看圆周率 Pi值 Pi的前百位 Pi的前百万位的主要内容,如果未能解决你的问题,请参考以下文章
下面的公式可以用来计算圆周率PI的近似值: PI/8=1/(1*3)+1/(5*7)+1/(9*11)+…… 请编程序计算公式的