码迷,mamicode.com
首页 > 编程语言 > 详细

Python中利用进度条求圆周率

时间:2019-03-21 00:45:48      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:pytho   size   col   soft   报错   code   utf-8   char   欧拉   

从祖冲之到现在,圆周率的发展越来越丰富,求法也是越来越快其中:

1.求圆周率的方法:

(1)蒙特卡罗法

这是基于“随机数”的算法,通过计算落在单位圆内的点与正方形内的比值来求圆周率PI。

 

技术图片

如果一共投入N个点,其中有M个落入圆中,则要点均匀,假定圆周率的半径为R,则:

技术图片

(2)欧拉恒等式公式为:

技术图片

基础的泰勒级数:

技术图片

(2)求python进度表

代码:

 

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 18-5-21 下午3:44
# @Author : LK
# @File : 进度条.py
# @Software: PyCharm

 

import sys
import time
def process_bar(precent, width=50):
use_num = int(precent*width)
space_num = int(width-use_num)
precent = precent*100
# 第一个和最后一个一样梯形显示, 中间两个正确,但是在python2中报错
#
# print(‘[%s%s]%d%%‘%(use_num*‘#‘, space_num*‘ ‘,precent))
# print(‘[%s%s]%d%%‘%(use_num*‘#‘, space_num*‘ ‘,precent), end=‘\r‘)
print(‘[%s%s]%d%%‘%(use_num*‘#‘, space_num*‘ ‘,precent),file=sys.stdout,flush=True, end=‘\r‘)
# print(‘[%s%s]%d%%‘%(use_num*‘#‘, space_num*‘ ‘,precent),file=sys.stdout,flush=True)

 


if __name__ == ‘__main__‘:
for i in range(21):
precent = i/20
process_bar(precent)
time.sleep(0.2)
print(‘\n‘)

显示如下:

 

t技术图片

(3)利用进度条显示求圆周率

代码如下:

import math
import time
scale=10
print("执行开始")
t=time.process_time()
for i in range(scale+1):
a,b=‘**‘*i,‘..‘*(scale-i)
c=(i/scale)*100
π=4*(4*math.atan(1/5)-math.atan(1/239))
print("%{:3}[{}->{}]".format(a,b,c))
time.sleep(0.1)
print(π)
print("{:.2f}s".format(t))
print("执行结束")

运行结果如下:

技术图片

现在,到此结束.................

 

Python中利用进度条求圆周率

标签:pytho   size   col   soft   报错   code   utf-8   char   欧拉   

原文地址:https://www.cnblogs.com/psl1234/p/10569095.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!