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

用Python计算圆周率

时间:2023-11-14 21:58:58浏览次数:33  
标签:total Python 圆周率 points 计算 progress estimate pi block

算法:采用蒙特卡洛模拟,其基本思想是,在一个正方形内部画一个圆,然后随机生成大量的点,计算落在圆内的点的数量与总点数的比例,最后通过比例估算π的值

代码:


import random
import math

def estimate_pi(total_points):
inside_circle = 0

for _ in range(total_points):
x = random.uniform(0, 1)
y = random.uniform(0, 1)

distance = math.sqrt(x**2 + y**2)

if distance <= 1:
inside_circle += 1

# 计算进度并显示进度条
progress = (_ + 1) / total_points
bar_length = 50
block = int(round(bar_length * progress))
progress_str = "[" + "*" * block + " " * (bar_length - block) + "]"
print(f"\r{progress_str} {progress*100:.2f}%", end="")

pi_estimate = (inside_circle / total_points) * 4
return pi_estimate

# 设置总点数
total_points = 10000

# 估算π的值
pi_value = estimate_pi(total_points)

# 打印结果
print(f"\n估算的π值为: {pi_value}")

 

标签:total,Python,圆周率,points,计算,progress,estimate,pi,block
From: https://www.cnblogs.com/0602cxh/p/17832658.html

相关文章

  • python中可变参数与装饰器的例子
    python的可变参数方法定义#*args是可以传list类型的可变参数,**kwargs是可以传dict的可变参数defwrapper(*args,**kwargs):使用示例deffoo(*args,**kwargs):print'args=',argsprint'kwargs=',kwargsprint'-------------------------------------......
  • Python将目录分割成数组
    Python将目录分割成数组要将目录路径分割成数组,你可以使用Python的`os`模块中的`os.path.split()`或`os.path.split()`函数,或者使用字符串的`split()`方法。以下是使用这两种方法的示例:使用`os.path.split()`函数:```pythonimportos#目录路径directory_path='......
  • Python的运算符
    1.算数运算  +-*///%"//"除"%"余a=20b=3c=a//bd=a%b#20/3=6.....2print(c)print(d)#运行结果62 让用户输入一个数字.判断是否是35的倍数n=int(input("来个数:"))ifn%35==0:print("是35的倍数")else:pri......
  • 计算开始与结束时间的时长:x天x时x分x秒
    importjava.util.Date;/**@ClassName:DateDurationUtils@Description:时长计算工具类@Author:lizg@Date:2023/11/1014:39*/publicclassDateDurationUtils{privatestaticLongDAY_SECOND_VALUE=24*60*60*1000L;privatestaticLongHOUR......
  • python镜像源
    1.1清华大学https://pypi.tuna.tsinghua.edu.cn/simple1.2阿里云https://mirrors.aliyun.com/pypi/simple/1.3网易https://mirrors.163.com/pypi/simple/1.4豆瓣https://pypi.douban.com/simple/1.5百度云https://mirror.baidu.com/pypi/simple/1.6中......
  • 数据科学和计算密集型任务的10个主题
    以下是数据科学和计算密集型任务中的十个主题:1.数据清洗和预处理:数据科学中的第一步通常是清洗和预处理数据,包括处理缺失值、异常值、重复值和噪声等。2.特征工程:特征工程是从原始数据中提取有用的特征,以供机器学习模型使用。这包括特征选择、特征变换和特征生成等技术。3.......
  • Python学习 —— 内置数据类型
    写在前面接上文《Python学习——初步认知》,有需要请自取:Python学习——初步认知在这篇文章中,我们一起深入了解Python中常用的内置数据类型。Python是一种功能强大的编程语言,它提供了多种内置数据类型,用于存储和操作数据。这些数据类型包括数字、字符串、序列和映射等。熟练......
  • Python反转字典的key和value
    1.遍历m={'a':1,'b':2,'c':3}n={}fork,vinm.items():n[v]=kprint(n)2.字典推导式m={'a':1,'b':2,'c':3}n={v:kfork,vinm.items()}print(n)3.使用zip函数m={'a'......
  • python列表中的字符串转成整型的几种方法
    python中在不同类型数据转换方面是有标准库的,使用非常方便。但是在开发中,经常在list中字符转成整形的数据方便遇到问题。这里就记录一下常用的几种方法。方法一:最基本的方法:通过轮训整个list来实现转换,具体代码如下:test_list=['1','3','2','6','8']print("Originallistis:"+......
  • python列表中的字符串转成整型的几种方法
    python中在不同类型数据转换方面是有标准库的,使用非常方便。但是在开发中,经常在list中字符转成整形的数据方便遇到问题。这里就记录一下常用的几种方法。方法一:最基本的方法:通过轮训整个list来实现转换,具体代码如下:test_list=['1','3','2','6','8']print("Originallistis:......