首页 > 编程语言 > 用Python计算圆周率pi

用Python计算圆周率pi

时间:2023-10-29 22:55:34浏览次数:42  
标签:scale dist Python 圆周率 random time ------ import pi

一、要求

1.要求能算到小数点后面越多越好(5分)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

 2.并用进度条提示算的进度,,能给出多种进度条越好(5分)‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

 3.要求给出算圆周率Pi具体公式或者算法说明

二、算法 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬—— 蒙特卡罗法

 1、第一种进度条

from random import random
from math import sqrt
import time
DARTS=100000000
hits=0.0
scale=10
print("------执行开始------")
for i in range(scale+1):
    a,b='**'*i,'..'*(scale-i)
    c=(i/scale)*100
    print("%{:^3.0f}[{}->{}]".format(c,a,b))
    time.sleep(0.1)
time.perf_counter()
for i in range(1,DARTS+1):
    x,y=random(),random()
    dist=sqrt(x**2+y**2)
    if dist<=1.0:
        hits=hits+1
pi=4*(hits/DARTS)
print("pi值是{}".format(pi))
print("运行时间是:{:.2f}s".format(time.perf_counter()))
print("------执行结束------")

运行结果

 

 2、第二种进度条

from random import random
from math import sqrt
import time
DARTS=100000000
hits=0.0
print("------执行开始------")
for i in range(101):
    print("\r{:2}%".format(i),end='')
    time.sleep(0.05)
time.perf_counter()
for i in range(1,DARTS+1):
    x,y=random(),random()
    dist=sqrt(x**2+y**2)
    if dist<=1.0:
        hits=hits+1
pi=4*(hits/DARTS)
print("pi值是{}".format(pi))
print("运行时间是:{:.2f}s".format(time.perf_counter()))
print("------执行结束------")

 运行结果

 

 

 

 

 

 

 

标签:scale,dist,Python,圆周率,random,time,------,import,pi
From: https://www.cnblogs.com/0cyy0/p/17796636.html

相关文章

  • 用python计算圆周率PI
    fromrandomimportrandomfrommathimportsqrtimporttimeDARTS=10**7hits=0.0a=1start=time.perf_counter()foriinrange(1,DARTS+1):x,y=random(),random()dist=sqrt(x**2+y**2)ifdist<=1.0:hits=hits+1ifi==DARTS*0.01*a:print......
  • python面向对象-学习笔记(六、方法相关的补充)
    私有化方法私有方法classPerson:__age=18#私有方法def__run(self):print("run")#def_Person__run(self):#print("Personrun")p=Person()#p.__run()#p._Person__run()print(Person.__dict__)内置特殊方法......
  • 计算圆周率
    frommathimport*fromtimeimport*scale=20s,m,=1,2print("执行开始".center(scale//2,"-"))start=perf_counter()foriinrange(scale+1):s=sqrt((1-sqrt(1-pow(s,2)))/2)m=m*2a='*'*ib='.'*(scale-i)......
  • python pandas安装失败的解决方法之一
    从https://www.lfd.uci.edu/~gohlke/pythonlibs/中下载对应的whl文件例:pandas‑1.4.3‑cp39‑cp39‑win32.whl,39指python3.9用下好放到python目录下的Scripts文件夹中,例我的是C:\Users\Administrator\AppData\Local\Programs\Python\Python39-32\Scripts再在路径栏全选输入cmd(......
  • 在Python中手动引发(抛出)异常
    内容来自DOChttps://q.houxu6.top/?s=在Python中手动引发(抛出)异常如何在Python中引发异常,以便稍后可以通过except块捕获?在Python中,可以使用raise语句来引发异常。要通过except块捕获异常,需要使用适当的异常类型并提供一个错误消息。以下是一个示例:try:#这里是可能引......
  • python进阶14大模块200页知识体系md笔记,第3篇:linux命令进阶
    本完整笔记从14大模块展示了python高级用的应用。分别有Linux命令,多任务编程、网络编程、Http协议和静态Web编程、html+css、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。完整版笔记直接地址:请移步这里......
  • pythonDay4
     可变不可变类型 判断用true和false    成员运算符:in  ......
  • python两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比
    两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单实例#!/usr/bin/python#-*-coding:UTF-8-*-foriinrange(ord('x'),ord('z')+1):forjinra......
  • python vtk读取dicom序列+鼠标键盘交互
    目标:vtk+pyqt实现四视图。之前不了解vtk,也不了解鼠标键盘交互。网上搜索了资料,发现博客里大都是C++的例子。困扰几天,今天终于做出来一部分,分享一下。参考官方教程:examples.vtk.org/site/Python/IO/ReadDICOM/examples.vtk.org/site/Python/IO/ReadDICOMSeries/第一步:py......
  • 解决Python报错ImportError: No module named ‘xxxx‘问题
    BASE_DIR=os.path.dirname(os.getcwd())#用来从jupyter默认地址中脱离出来importsyssys.path.append(BASE_DIR)sys.path.append('E:\CV_Paper_fuxian\lesson\B_VGG')#把文件所在的相对路径要添加进去。才不会报错然后运行,就完美解决了。......