先来看几张图片
......
以上依次是正四边形,正八边形,正十六边形......这些图形的对角线长都是2,不难看出,按这种方式一直画下去,最后的图形可以近似看作一个圆,以下代码是依照这种思路用Python计算π的值,附加进度条
import math import time scale=14 s,m,=1,2 print("执行开始".center(scale//2, "-")) start = time.perf_counter() for i in range(scale+1): s=math.sqrt((1-math.sqrt(1-pow(s,2)))/2) m=m*2 a = '*' * i b = '.' * (scale - i) c = (i/scale)*100 dur = time.perf_counter() - start print(" {:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur)) time.sleep(0.1) Pi=s*m print("Pi值是{}".format(Pi)) print(" "+"执行结束".center(scale//2,'-'))
运行结果如下