zoukankan      html  css  js  c++  java
  • 使用python计算圆周率(有进度条)

    π的计算

    一、π的简介

    • π的介绍

      圆周率用希腊字母 π(读作pài)表示,是一个常数(约等于3.141592654),是代表圆周长和直径的比值。它是一个即无限不循环小数,在日常生活中,通常都用3.14代表圆周率去进行近似计算。

    • π的求解历程

      1965年,英国数学家约翰·沃利斯(John Wallis)出版了一本数学专著,其中他推导出一个公式,发现圆周率等于无穷个分数相乘的积。

      2015年,罗切斯特大学的科学家们在氢原子能级的量子力学计算中发现了圆周率相同的公式。

      2019年3月14日,谷歌宣布圆周率现已到小数点后31.4万亿位。

     

      此处用一个自我感觉‘良好’的公式进行求解,说良好是因为计算结果相对准确,但计算过程用时较长,一起来学习吧~~~

     

     

    二、π的近似计算

       1. 计算公式 

                                   

     2. 方法讲解

      所用公式等式右边分子都为1,分母为递增数列,从第一项开始,奇数项符号为正,偶数项符号为负。等式右边的分母越大,越小,圆周率π计算的值越精确;换个角度讲,就是等式右边的项越多,计算的值越精确。

     

      3. 代码实现(python)

    from random import random
    from math import sqrt
    from time import *
    from tqdm import tqdm
    DARTS=10000000
    hits=0.0
    clock()
    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)
    for i in tqdm(range(10)):
        print("
    {:3}%".format(i/10*100)) #这里的i/10*100指每10%显示一次
        sleep((clock())/100)#用执行程序的总时间来算出进度条间隔的时间  
    print("pi的值{}.".format(pi))
    print("运行时间:{:.5f}s".format(clock()))

    4. 图片示例

    由上面2张图片可知,算1000W次只要8.20秒

  • 相关阅读:
    Spring Security11、登录用户管理
    Spring Security10、账号登录并发控制
    win10下怎么打开notepad++多个实例
    gnu make
    es学习记录
    upj
    JConsole连接远程Java进程
    常用的几种成本核算方法
    SQL SERVER 统计字符串中某字符出现的次数
    centos误删除系统自带的python解决方法
  • 原文地址:https://www.cnblogs.com/lzz807237221/p/10568206.html
Copyright © 2011-2022 走看看