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

用Python计算圆周率pi

时间:2023-10-30 12:45:48浏览次数:36  
标签:hits Python 圆周率 random DARTS print import pi

一、计算圆周率pi的方法

(一)公式法

pi=0
N=eval(input())
for k in range(N):
pi+=1/pow(16,k)*(4/(8*k+1)-2/(8*k+4)-1/(8*k+5)-1/(8*k+6))
print(pi)

(二)蒙特卡罗方法

#e.6.1(p115)

from random import random
from math import sqrt
from time import perf_counter
DARTS = 100000000
hits = 0.0
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("运行时间是: {:5.5}s".format(perf_counter()))

二、用进度条显示算的进度

from random import random
from math import sqrt
from time import *
DARTS=100000000
hits=0.0
n=1
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
if i == DARTS * 0.01 *n:
print("\r{}%[{}->]".format(n,'*'*n),end='')
n += 1
pi=4*(hits/DARTS)
print("\npi的值为:{}.".format(pi))
print("运行时间为:{:.5f}s.".format(perf_counter()))
print('(2021310143103)')

代码运行截图:

 

三、算圆周率pi的具体公式

for k in range(N):
pi+=1/pow(16,k)*(4/(8*k+1)-2/(8*k+4)-1/(8*k+5)-1/(8*k+6))

 

标签:hits,Python,圆周率,random,DARTS,print,import,pi
From: https://www.cnblogs.com/gzygshyq/p/17796841.html

相关文章

  • Python 并发编程
    目录一.理论知识1.1多道技术相关2.1同步和异步阻塞和非阻塞二.进程对象编程2.1开启进程的方式2.2join方法2.3进程间数据隔离2.4进程对象其它方法pid2.4守护进程2.5互斥锁2.6进程之间的通信1,队列Queue模块2,ipc机制3,生产者消费者模式三.线程对象编程3.1开启线......
  • Python生成词云
    一、词云生成的基本原理词云是一种可视化展示文本内容的工具,用于显示文本中出现次数较高的关键词。其主要思想是将文本中频繁出现的词汇以视觉化的方式展现出来,可以很快地帮助人们了解文本的主要内容和关键信息。生成词云的基本原理是,首先需要解析文本中的关键词,统计其出现频率,然后......
  • 编译报错 internal compiler error: Segmentation fault 解决方法
    问题描述最近在使用虚拟机ubuntu20.04编译muslgcc工具链时,遇到一个奇怪的问题,编译过程中异常退出,清理了多次重新编译,发现编译报错提示的信息是internalcompilererror:Segmentationfault由于之前是可以正常编译的,所以怀疑编译环境造成的解决方法初步重启ubuntu可以解决......
  • Python常用模块-20个常用模块总结
    目录time模块datetime模块random模块os模块sys模块json和pickle模块hashlib和hmac模块logging模块numpy模块pandas模块matplotlib模块re模块typing模块collections模块pathlib模块shutil模块xml模块subprocess模块configparser模块Python常用模块小结time模块......
  • [计算机学习]Python 二分法
    二分法的思想二分查找的前提是对象是有序数据。以下内容摘自Pythontip.com网站。扫描二维码可以了解更多Python课程。 left=0right=sizeofarray#数组的大小while(left+1<right)mid=(left+right)/2#中间mid下标if(array[mi......
  • Python Wordcloud报错:Only supported for TrueType fonts,多种解决方案
    PythonWordcloud报错:OnlysupportedforTrueTypefonts,多种解决方案。报错内容如下:2023-10-26T09:35:41.190459839ZTraceback(mostrecentcalllast):2023-10-26T09:35:41.190502589ZFile“lib/task/compute.py”,line621,in2023-10-26T09:35:41.190514101Zcompute_......
  • Python中的JSON数据解析和映射--根据value查询key
    importjson#原始JSON数据json_data='''[{"id":1,"name":"MOVE"},{"id":2,"name":"LEFT_DOWN"},{"id":3,"name":"LEFT_UP"},{......
  • 【Python】在linux环境下, Django 3.0+版本遇到的一些问题
    1.Django3.2版本升级后的一些报错,导致项目运行失败1.1site-packages/rest_framework/serializers.py fromdjango.db.models.fieldsimportFieldDoesNotExistImportError:cannotimportname'FieldDoesNotExist'解决办法:改变FieldDoesNotExist的导入方式fromdjango......
  • Python中的元组
    tuple元组,特点:不可变的列表t=("张无忌","赵敏","呵呵哒")print(t)print(t[1:3])t[0]="樵夫"#'tuple'objectdoesnotsupportitemassignmentprint(t)你固定了某些数据.不允许外界修改元组如果只有1个元素(*),需要在元素的末尾添加一个逗号t=("哈......
  • pip安装库包,及镜像源的配置
     pip安装库包,及镜像源的配置一、常用镜像源下载地址:1清华:https://pypi.tuna.tsinghua.edu.cn/simple2阿里云:http://mirrors.aliyun.com/pypi/simple/3中国科技大学https://pypi.mirrors.ustc.edu.cn/simple/4华中理工大学:http://pypi.hustunique.com/5山东理工大学......