python实验2 π的计算

news2024/11/29 0:32:22

π的计算

  • 1. 圆周率的介绍
  • 2. BBP公式计算圆周率
  • 3. 蒙特卡洛方法计算π

1. 圆周率的介绍

  1. 圆周率π自古就是人们计算的问题,π到底是什么,圆的周长与直径的比值或者是面积与半径的平方之比,或者是使sinx=0的最小正数x。所以每一种定义每一种理解都是对应着一种解法,每一种定义都是数学中不同门类对应着对π的理解,也就是各自门类的解法。
  2. 常见的计算方法割圆术、无穷级数(拉马努金圆周率公式、BBP公式……)、其他级数(自然数倒数偶次方和、泰勒展开……)、微积分……(方法有很多我就不一一举例了,如果想要探索更多方法看这个博主写的文章就好了)

2. BBP公式计算圆周率

  1. 公式
    在这里插入图片描述
  2. 证明:刚刚提到的文章(以后会更新
  3. 代码
    import math
    
    
    def  bbp_pi(digits):
        pi = 0
        for k in range(digits):
            term = (1 / 16**k) * (
                (4 / (8 * k + 1)) - (2 / (8 * k + 4)) - (1 / (8 * k + 5)) - (1 / (8 * k + 6))
            )
            pi += term
        return pi
    
    # 指定所需的小数位数
    decimal_places = 100
    calculated_pi = bbp_pi(decimal_places)
    
    print("计算得到的π值:", calculated_pi)
    
    
  4. 运行结果
    计算得到的π值: 3.141592653589793
    请按任意键继续. . .
    

3. 蒙特卡洛方法计算π

  1. 原理
    在这里插入图片描述
  2. 代码
    from random import random
    from math import sqrt
    from time import clock
    DARTS = 1000# 一共投掷的点数
    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)
    print("Pi值是{}.".format(pi))
    print("运行时间是: {:5.5}s".format(clock()))
    
  3. 运行结果
    Pi值是3.144.
    请按任意键继续. . .
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1145839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FreeRTOS 中断管理介绍和实操

目录 中断定义 中断优先级 相关注意 中断相关函数 1.队列 2.信号量 3.事件标志组 4.任务通知 5.软件定时器 中断管理实操 中断定义 中断是指在程序执行的过程中&#xff0c;突然发生了某种事件&#xff0c;需要立即停止当前正在执行的程序&#xff0c;并转而处理这个…

NewStarCTF2023week4-midsql(利用二分查找实现时间盲注攻击)

大致测试一下&#xff0c;发现空格被过滤了 使用内联注释/**/绕过&#xff0c;可行 1/**/-- 使用%a0替代空格&#xff0c;也可以 1%a0-- 再次测试发现等号也被过滤&#xff0c;我们使用 like 代替 &#xff08;我最开始以为是and被过滤&#xff0c;并没有&#xff0c;如果是…

如何选择适合企业需求的企业知识库管理软件

随着信息技术的不断发展&#xff0c;知识管理软件在企业中扮演着越来越重要的角色。它们帮助企业有效地组织、存储和共享大量的知识资源&#xff0c;提高团队之间的协作效率&#xff0c;并为决策提供有力支持。那企业该如何才能选到合适的企业知识库管理软件呢&#xff1f; 一、…

Unity之ShaderGraph如何实现科幻空气墙

前言 今天在油管上看到一个空气墙的特效,感觉做的非常好看,今天我们就来实现以下这个科幻风格的空气墙 效果如下所示: 点阵 Dots:ShaderGraph的官方示例中提供的点阵SubGraph节点,如下图所示,需要我们导入示例 空气流动 我们让Dots点阵和SimpleNoise相乘,得到一…

JS加密/解密之逻辑运算符加密进阶篇

前言 ​ 前篇给大家介绍了运算符不为人知的基础知识。他们的各种表达形式&#xff0c;今天我们从这个基础上&#xff0c;继续进一步告诉大家&#xff0c;如何对字符串进行加密处理。还是那句话&#xff0c;技术人不废话&#xff0c;直接晒代码。 示例源代码 // 字符串加密示…

【C++】STL容器——探究不同 [ 迭代器 ] 种类&在STL中的使用方式(15)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 引言&#xff1a;一.查看STL使用文档时…

redis6.0源码分析:简单动态字符串sds

文章目录 sds简介与特性(面试)sds结构模型数据结构苛刻的数据优化数据结构优化uintX_t对齐填充 sds优势O(1)时间复杂度获取字符串长度二进制安全杜绝缓冲区溢出自动扩容机制——sdsMakeRoomFor方法 内存重分配次数优化 sds最长是多少部分API源码解读创建sds释放sds sds简介与特…

localhost知识

文章目录 一、localhost是什么&#xff1f;二、localhost 在平时用到的地方三、 localhost 与 127.0.01 一、localhost是什么&#xff1f; localhost 是一个特殊的主机名&#xff0c;通常指代本机。它被用来进行本地开发和测试&#xff0c;也常被用作网络配置中的占位符&#…

IOC课程整理-6 Spring IoC 依赖注入

1 依赖注入的模式和类型 模式 类型 2 自动绑定&#xff08;Autowiring&#xff09; 官方定义 “自动装配是Spring框架中一种机制&#xff0c;用于自动解析和满足bean之间的依赖关系。通过自动装配&#xff0c;Spring容器可以根据类型、名称或其他属性来自动连接协作的bean&…

Mac电脑配置Dart编程环境

1.安装Dart SDK 官网地址&#xff1a;https://dart.dev/get-dart $brew tap dart-lang/dart$brew install dart 安装后&#xff0c;用命令检测一下是否安装正常。 $brew info dart 2.VS Code配置Dart环境 1).安装VS Code 官网地址&#xff1a;https://code.visualstudio.c…

删除元素专题

这篇也是凑数的 ... 题目 : LeetCode 27.移除元素 : 27. 移除元素 分析 : 快慢指针 : 定义两个指针slow和fast&#xff0c;初始值都是0。Slow之前的位置都是有效部分&#xff0c;fast表示当前要访问的元素。 这样遍历的时候&#xff0c;fast不断向后移动: 如果nums[fast…

解决MySQL大版本升级导致.Net(C#)程序连接报错问题

数据库版本从MySQL 5.7.21 升级到 MySQL8.0.21 数据升级完成后&#xff0c;直接修改程序的数据库连接配置信息 <connectionStrings> <add name"myConnectionString" connectionString"server192.168.31.200;uidapp;pwdFgTDkn0q!75;databasemail;&q…

【Java 进阶篇】Java Request 获取请求参数的通用方式详解

在Java Web开发中&#xff0c;获取HTTP请求的参数是一项基本任务。请求参数可以包含在URL中&#xff0c;也可以包含在请求体中&#xff0c;例如表单提交时的参数。在Java中&#xff0c;可以使用HttpServletRequest对象来获取HTTP请求的参数。本文将详细解释如何使用Java获取HTT…

基于vue天气数据可视化平台

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

070:mapboxGL加载含有shp文件的zip,显示图形

第070个 点击查看专栏目录 本示例是介绍演示如何在vue+mapbox中加载含有shp文件的zip,在地图上显示图形。这里先通过转换生成geojson文件,然后在地图上渲染图形,同时使用fitBounds将数据放置到可视的范围内。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 …

​Vue3响应式原理

目录 手动收集依赖通知更新 effect()&#xff1a;更改数据后执行&#xff0c;更新依赖该数据的数据&#xff08;依赖&#xff09; track&#xff08;&#xff09;收集依赖的effect()放进dep&#xff08;set去重&#xff09; 更新时触发trigger函数通知dep里所有effect()执行…

代码训练营第53天:动态规划part12|leetcode309买卖股票的最佳时期含冷静期|leetcode714买卖股票的最佳时机含手续费

leetcode309&#xff1a;买卖股票的最佳时机含冷冻期 文章讲解&#xff1a;leletcode309 leetcode714&#xff1a;买卖股票的最佳时机含手续费 文章讲解&#xff1a;leetcode714 目录 1&#xff0c;leetcode309 买卖股票的最佳时机含冷冻期 2&#xff0c;leetcode714 买卖股票…

Qt中实现页面切换的两种方式

文章目录 方式一 &#xff1a;使用QStackedWidget讲解代码结构main.cpp完整代码运行结果&#xff1a; 方式二 &#xff1a;代码结构完整代码mainwindow.hnewmainwindow.hmain.cppmainwindow.cppnewmainwindow.cppmainwindow.uinewmainwindow.ui 效果 方式一 &#xff1a;使用QS…

目标检测YOLO实战应用案例100讲-改进YOLOv4的遥感图像目标检测

目录 前言 遥感图像目标检测国内外研究现状 传统遥感图像目标检测算法 深度学习遥感图像目标检测算法 2目标检测相关理论基础 2.1卷积神经网络 2.1.1基础理论 2.1.2卷积神经网络训练参数优化方式 2.2目标检测经典算法 2.2.1 两阶段目标检测算法 2.2.2 单阶段…

python opencv之图像分割、计算面积

以下代码是一个基于K-means聚类算法进行图像分割的实现。通过读取一个彩色图像&#xff0c;将其转化为二维数组形式。然后使用K-means算法对像素点进行聚类&#xff0c;聚类个数为7。根据聚类后的标签值对像素点进行着色&#xff0c;并创建掩膜图像。接着使用形态学开运算和闭运…