python 编写函数计算圆周率

python 编写函数计算圆周率

问题描述:

习题四 编写函数,计算圆周率。存在圆心在直角坐标系原点且半径为 1 的圆及其外切正方形。为计算方便,仅考虑位于第一象限的四分之一正方形和四分之一圆。随机生成该四分之一正方形中一系列点,散布于四分之一圆内比例即为圆周率四分之一。散步点越多,结果越精确,耗时也越长。

from random import random
from math import sqrt

N=eval(input("请输入次数:"))
#散在园内部点为0
K=0 
#循环撒点的过程看成是遍历循环的过程,用for in range对所有点进行抛洒
for i in range(1,N+1):
#    定义x,y当作两个随机数的坐标值,这个坐标就是圆的抛点
    x,y=random(),random()
#    如何判断这个坐标就在圆内呢?判断这个点到圆心的距离是否等于1
    dist =sqrt(x**2+y**2)
    if dist<=1.0:
        K=K+1
#用这个值比上整个区域值
pi=4*(K/N)    
print("圆周率值:{}".format(pi))

运行结果

请输入次数:666666
圆周率值:3.1404271404271404

# -*- coding: utf-8 -*-
from __future__ import division
####################导入时间模块
import time
###############计算当前时间
time1=time.time()
################算法根据马青公式计算圆周率####################
number = int(raw_input('请输入想要计算到小数点后的位数n:'))
# 多计算10位,防止尾数取舍的影响
number1 = number+10
# 算到小数点后number1位
b = 10**number1
# 求含4/5的首项
x1 = b*4//5
# 求含1/239的首项
x2 = b// -239
# 求第一大项
he = x1+x2
#设置下面循环的终点,即共计算n项
number *= 2
#循环初值=3,末值2n,步长=2
for i in xrange(3,number,2):
  # 求每个含1/5的项及符号
  x1 //= -25
  # 求每个含1/239的项及符号
  x2 //= -57121
  # 求两项之和
  x = (x1+x2) // i
  # 求总和
  he += x
# 求出π
pai = he*4
#舍掉后十位
pai //= 10**10
############ 输出圆周率π的值
paistring=str(pai)
result=paistring[0]+str('.')+paistring[1:len(paistring)]
print result
time2=time.time()
print u'总共耗时:' + str(time2 - time1) + 's'

 https://www.cnblogs.com/it-tsz/p/12344213.html

这个是马青公式

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__':
  print(zu(10))
  print(math.pi)

https://blog.csdn.net/qq_42680814/article/details/105828836

割圆法。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y