一、算π的思路
首先构造一个单位正方形和一个四分之一圆,然后随机想其中抛洒大量的点,每个点可能在圆内也可能在圆外,当点数足够多时圆内点将构成圆的面积,全部点将构成矩形面积,用圆内点数量除以全部点数量,就得到了π/4。
二、程序实现
输入:抛点的数量。
处理:对于每个点,计算点到圆心的距离,通过距离判断点在圆内还是圆外,然后统计圆内点的数量。
输出:π的值。

三、
当测试次数足够大时程序运行的就特别慢,就需要加入进度条
(1)文本进度条
源代码如下:
import time import sys for i in range(31): sys.stdout.write(‘\r‘) sys.stdout.write("%s%%|%s"%(int(i/30*100),int(i/30*100)*‘#‘)) sys.stdout.flush() time.sleep(0.3)
运行后如下:

将此代码插入算π中代码如下:
from random import random from math import sqrt from time import clock import time import sys darts=int(input()) hits=0 clock() for i in range(1,darts): x,y=random(),random() dist=sqrt(x**2+y**2) if dist<=1.0: hits=hits+1 pi=4*(hits/darts) for i in range(darts+1): sys.stdout.write(‘\r‘) sys.stdout.write("%s%%|%s"%(int(i/darts*100),‘#‘)) sys.stdout.flush() time.sleep(0.3) print("\n") print("pi的值是%s"%pi) print("程序运行的时间%-5.5ss"%clock())
效果如下:

原文:https://www.cnblogs.com/0330lgs/p/10562002.html