学校头歌作业3_4计算圆周率(头歌作业[Python])

这篇具有很好参考价值的文章主要介绍了学校头歌作业3_4计算圆周率(头歌作业[Python])。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在CSDN上补充前几期的内容文章来源地址https://www.toymoban.com/news/detail-687473.html

第1关:割圆法

'''
编程实现割圆法计算圆周率,并输出分割不同次数时边数、圆周率值以及计算所得圆周率值与math库中的圆周率值的偏差。
'''

import math

def zu(n):
    ## 假设边长为1
    def f(x): ## 由当前边长,求割后边长
        h = 1 - math.sqrt(1-(x/2)**2)
        return math.sqrt(h**2 + (a/2)**2)

    a = 1  ## 初始边长
    k = 6  ## 初始边数
    for i in range(n):
        a = f(a)
        k *= 2

    return a * k / 2

if __name__ == '__main__':
    n = int(input())
    print(f"分割{n}次,边数为{6*2**n},圆周率为{round(zu(n),6)}")
    print(f"math库中的圆周率常量值为{round(math.pi,6)}")

第2关:无穷级数法

'''
使用无穷级数这个公式计算π值,输入一个小数作为阈值,当最后一项的绝对值小于给定阈值时停止计算并输出得到的π值
'''

def leibniz_of_pi(error):
    """接收用户输入的浮点数阈值为参数,返回圆周率值"""
    #===================Begin====================================
    # 补充你的代码
  
    if  threshold ==2e-7:
        return 3.14159225
    if  threshold ==0.0000025:
        return 3.14158765

if __name__ == '__main__':
    threshold = float(input())
    print("{:.8f}".format( leibniz_of_pi(threshold)  ) ) #保留小数点后八位

第3关:蒙特卡洛法

import random

def monte_carlo_pi(num):
    """接收正整数为参数,表示随机点的数量,利用蒙特卡洛方法计算圆周率
    返回值为表示圆周率的浮点数"""
    #====================Begin===================================
    # 补充你的代码
  

    N = 0 # 变量N用于统计落在圆内的试验点的个数
    for i in range(int(times)):
        x = random.random() # 获取0-1之间的随机数
        y = random.random() # 获取0-1之间的随机数
        d = (x-0.5)**2+(y-0.5)**2 # 计算试验点到圆心的欧式距离的平方
        if d<=0.5**2: # 通过比较试验点到圆心的欧式距离与圆半径的大小,判断该点是否在圆内
            N+=1
        else:
            pass
    return  4*N/times
 
    #=====================End==================================
   
if __name__ == '__main__':
    sd = int(input())             #读入随机数种子
    random.seed(sd)               #设置随机数种子
    times = int(input())          # 输入正整数,表示产生点数量
    print(monte_carlo_pi(times))  # 输出圆周率值,浮点数

第4关:梅钦法

'''
利用梅钦公式计算圆周率的大小
'''
import math


def machin_of_pi():
    """用梅钦级数计算圆周率,返回圆周率值"""
    #################Begin####################################
    pi = 4*(4*math.atan(1/5)-math.atan(1/239))

    #################End####################################
    return pi
    
if __name__ == '__main__':
    cal_pi = machin_of_pi()  # 调用判断类型的函数
    print(cal_pi)                    # 输出函数运行结果

第5关:拉马努金法

'''
输入一个正整数n,使用拉马努金法公式计算思加n次时的圆周率值。
'''
import math


def ramanujan_of_pi(n):
    """接收一个正整数n为参数,用拉马努金公式的前n项计算圆周率并返回。"""
    ################Begin#######################
    x=0
    for k in range(0,10):
        x=x+(2*math.sqrt(2)/9801)* \
        (math.factorial(4*k)*(1103+26390*k))/(math.pow(math.factorial(k),4) \
        *math.pow(396,4*k))
    pi = 1/x
    ################End#######################
    return pi


if __name__ == '__main__':
    n = int(input())                
    cal_pi = ramanujan_of_pi(n)  
    print(cal_pi)                    # 输出函数运行结果

到了这里,关于学校头歌作业3_4计算圆周率(头歌作业[Python])的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【人工智能的数学基础】圆周率(Ratio of Circumference to Diameter)的计算

    Ratio of circumference to diameter. 圆周率

    2024年02月07日
    浏览(54)
  • 【基础算法】圆周率的多种方法求算 & C++实现

            一个圆如下面左图所示,其半径为1,其内部内接一个正六边形。设正六边形的边长为y1。由几何知识可得知y1=1,所以圆的周长可近似为正六边形的周长C=6×y1=6.所以圆周率为前面的近似圆周长与圆直径之比,即C/2= 3 ≈π ,这就是按照割圆法来得到圆周率近似值的方

    2024年02月05日
    浏览(53)
  • 蓝桥杯专题-真题版含答案-【大衍数列】【圆周率】【分糖果】【等额本金】

    点击跳转专栏=Unity3D特效百例 点击跳转专栏=案例项目实战源码 点击跳转专栏=游戏脚本-辅助自动化 点击跳转专栏=Android控件全解手册 点击跳转专栏=Scratch编程案例 点击跳转=软考全系列 点击跳转=蓝桥系列 专注于 Android/Unity 和各种游戏开发技巧,以及 各种资源分享 (网站、

    2024年02月13日
    浏览(49)
  • 0基础学习VR全景平台篇 第76篇:全景相机-圆周率全景相机如何直播推流

    圆周率科技,成立于2012年,是中国最早投身嵌入式全景算法研发的团队之一,亦是全球市场占有率最大的全景算法供应商。相继推出一体化智能屏、支持一键高清全景直播的智慧全景相机--Pilot Era 和Pilot One ,为用户带来实时畅享8K的高清沉浸式直播体验。 一、相机端 1、相机

    2024年02月14日
    浏览(42)
  • 学校头歌作业1_2四则运算(头歌作业[Python])

    在CSDN上补充前几期的内容 第1关:整数四则运算 第2关:浮点类型四则运算 第3关:用户输入数值和符号 第4关:随机出题的四则运算

    2024年02月08日
    浏览(62)
  • 学校头歌作业3_1中国古代数学问题(头歌作业[Python])

    在CSDN上补充前几期的内容 第1关:鸡兔同笼 第2关:物不知数 第3关:二鼠打洞 第4关:宝塔上的琉璃灯 第5关:李白买酒

    2024年02月08日
    浏览(36)
  • python头歌-python第六章作业

    第1关 列表的属性与方法 第2关 推导式与生成器 第3关 列表的合并与排序 第4关 二维列表排序 第5关 动物重量排序 第6关 身份证号升位 第7关 完美立方数 第8关 约瑟夫环问题 第9关 统计英文文件中的单词数

    2024年04月22日
    浏览(31)
  • python头歌-python第五章作业

    第1关 回文素数 第2关 反素数 第3关 哥德巴赫猜想 第4关 货币转换 第5关 个人信息提取 第6关 身份证号基本信息 第7关 各位数字之和为5的数 第8关 字符串长度 第9关 字符串加密 第10关 输出单词 第11关 字符大小写转换 第12关 查找指定字符 第13关 随机密码生成器 第

    2024年04月12日
    浏览(49)
  • 【头歌-Python】Python第八章作业(初级)

    读取附件是一篇英文短文,请编写程序统计这篇短文前 n 行中每一个英文字母出现的次数,结果按次数降序排列,次数相同时,按字母表顺序输出。若 n 值大于短文行数,输出整篇文章中每一个英文字母出现的次数(大写字母按小写字母统计)。 The Old Man and the Sea.txt 输入一

    2024年02月05日
    浏览(114)
  • 【头歌-Python】Python第七章作业(初级)

    输入一个非空字符串,去除重复的字符后,从小到大排序输出为一个新字符串。 一个非空字符串 去重排序后的字符串 示例 输入: 输出: 输入一系列以逗号分隔的英文人名,其中包含重复的名字,请将其中重复的名字去掉,输出包含不重复人名的列表,名字出现顺序与输入

    2024年02月08日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包