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

用python计算圆周率PI

时间:2023-11-14 16:23:13浏览次数:31  
标签:hits PI 进度条 python 圆周率 random DARTS pi

 

描述

用python计算圆周率PI‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪

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

‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪

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

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

进度条设计参考:https://www.cnblogs.com/dream4567/p/9690828.html‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪

简单直接进度条设计:https://blog.csdn.net/xiaodongxiexie/article/details/70495618‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬

https://blog.csdn.net/qq_40666028/article/details/79335961

 

#根据蒙特卡洛方法的原理,通过 hits 的数量和总投掷次数,计算得到圆周率 pi 的近似值。
from random import random
from math import sqrt
import time
DARTS = 10**7       #投掷次数
hits=0.0            #落在圆内的次数
a=1
start=time.perf_counter()   #开始计时(程序运行时间)
for i in range(1,DARTS+1):
    x,y=random(),random()   #随机数x,y(0-1之间),模拟投掷坐标
    dist=sqrt(x**2+y**2)
    if dist <=1.0:          #坐标到原点的距离,<1在圆内,>1在圆外
        hits=hits+1         #在圆内的次数
        
#进度条设置
    if i == DARTS*0.01*a:
        print("\r%{}[{}->{}]".format(a,'*'*a,'-'*(10-a)))
        a+=3
pi=4*(hits/DARTS)           #面积:pi*(r^2)=2r*2r ==> pi= 4*(S圆/S正方形) 
end=time.perf_counter()     #结束计时
print("pi值是{}.",format(pi))
print("运行时间是:{:5.5}s".format(end-start))    #{:5.5}宽度为5,保留5位小数

 

 

运行结果:

 

标签:hits,PI,进度条,python,圆周率,random,DARTS,pi
From: https://www.cnblogs.com/qinuoqwq/p/17831868.html

相关文章

  • python datetime对象转成字符串类型str
    ptrada=dbutil.select(f"selecttrade_datefrom...")print(type(ptrada),ptrada)    # <class'list'>[(datetime.datetime(2023,8,1,0,0),)]一般从数据库中取到的日期都是datetime对象数据结构pretra=ptrada[0][0]    print(type(pretra ),pr......
  • Python字符的编码encode和解码decode
    相关阅读:字符集(CharacterSet)和编码(Encoding)的历史演化 Python字符的编码encode和解码decode进行编码str.encode("编码") 进行解码bytes.decode("编码")  s="周杰伦"bs1=s.encode("gbk")#b'xxxx'bytes类型bs2=s.encode("utf-8"......
  • Codeforces Round 809 (Div. 2) D1. Chopping Carrots (Easy Version) 题解
    题意CodeforcesRound809(Div.2)D1.ChoppingCarrots(EasyVersion)给两个整数\(n,k\),一个数组\(a\),要求构造一个同样长度的数组\(p\),使得\(\max\limits_{1\lei\len}\left(\left\lfloor\frac{a_i}{p_i}\right\rfloor\right)-\min\limits_{1\lei\l......
  • 【溶解度工具】上海道宁为您带来了解溶解度、分散性、扩散、色谱等问题的强大而实用的
      高度参数化的UNIFAC技术可以提供出色的预测COSMO-RS方法的量子化学基础可以在明确的公式中进行精确预测Abraham参数和NRTL-SAC也各有其独特的功能优秀的配方师会使用正确的工具来完成手头的工作  如果您必须只使用一种工具那么它应该是HSP......
  • 守护 C 盘,Python 相关库设置
    前言    pip安装依赖和conda创建环境有多方便,那C盘就塞得就有多满。以前我不管使用什么工具,最多就设置个安装位置,其他都是默认。直到最近C盘飙红了,我去盘符里的AppData里一看,pip的缓存和conda以前创建的虚拟环境都是几个G以上。所以我决定整顿C盘,对所有......
  • Python爬虫程序网络请求及内容解析
    以下是一个简单的Python爬虫程序,用于爬取商户的内容。这个程序使用了requests和BeautifulSoup库来进行网络请求和内容解析。importrequestsfrombs4importBeautifulSoup#爬虫爬虫IP信息proxy_host='duoip'proxy_port='8000'#请求URLurl='目标网站'#创建一个r......
  • requests 在 Python 3.2 中使用 OAuth 导入失败的问题与解决方案
    问题背景在Python3.2中,尝试使用Request的OAuth支持时,遇到了OAuth导入失败的问题。以下代码:importrequestsfromrequests.authimportOAuth1url='https://api.twitter.com/1/account/settings.json'queryoauth=OAuth1('client_key','client_secret',......
  • Python冒泡排序算法
    冒泡排序算法是一种简单的排序算法,其基本思想是通过多次遍历数组,比较相邻的两个元素,如果它们的顺序不对则交换。这样一轮遍历之后,最大(或最小)的元素就会被移动到数组的最后,然后再对剩余的元素进行类似的操作,直到整个数组有序defbubble_sort(arr):n=len(arr)#外层循环控制遍历的......
  • 【Python】爬虫代理IP的使用+建立代理IP池
    前言在进行网络爬虫开发时,我们很容易遭遇反爬虫机制的阻碍。为了规避反爬虫机制,我们可以使用代理IP。代理IP是指通过代理服务器获取的可用于访问目标网站的IP地址,通过使用代理IP,我们可以隐藏自己的真实IP地址,避免被目标网站封禁。但是,在使用代理IP时,我们需要注意一些问题:代理IP的质......
  • TCPIP 协议族
    TCP/IP协议族通常我说TCP/IP是指TCP/IP协议族。它是基于TCP和IP这两个最初的协议之上的不同的通信协议的大集合。例如:http、https、ftp、icmp、arp、rarp、smtp(简单邮件传输协议)一个网络请求是怎么传输的?我们拿访问浏览器举个栗子,如图所示:TCP、UDP有什么区别?各有......