Maison  >  Article  >  développement back-end  >  Exemple Python montrant comment calculer la valeur de pi à n'importe quel chiffre

Exemple Python montrant comment calculer la valeur de pi à n'importe quel chiffre

不言
不言original
2018-05-08 11:52:394533parcourir

Cet article présente principalement la méthode Python de calcul de la valeur de pi à n'importe quel chiffre, analyse brièvement le principe de calcul de pi et analyse les compétences opérationnelles pertinentes du calcul de pi par Python sous la forme d'exemples auxquels les amis dans le besoin peuvent se référer. ce qui suit

L'exemple de cet article décrit la méthode de calcul de la valeur de pi pour n'importe quel chiffre en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

1. Analyse de la demande

Entrez le nombre de chiffres. vous souhaitez calculer au point décimal le nombre, calculez la valeur de pi.

2. Algorithme : Formule de Ma Qing

π/4=4arctan1/5-arctan1/239

Cette formule a été découverte en 1706 par John Mathing, un professeur d'astronomie britannique. Il a utilisé cette formule pour calculer pi à 100 chiffres. La formule de Ma Qing peut obtenir une précision de 1,4 chiffres décimaux pour chaque élément calculé. Étant donné que le multiplicande et le dividende lors de son calcul ne sont pas plus grands qu'un entier long, ils peuvent être facilement programmés sur un ordinateur.

3. Le programme écrit en langage python pour trouver le pi à n'importe quelle position est le suivant :

# -*- coding: utf-8 -*-
from __future__ import pision
####################导入时间模块
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'

Résultat de l'exécution :

Veuillez saisir le nombre de chiffres que vous souhaitez calculer à la virgule décimale n : 20
3.14159265358979323846
Temps total pris : 9.77699995041s

Veuillez saisir le nombre de chiffres que vous souhaitez calculer à la virgule décimale n 50
3.1415926535897 9323846264338327950288419716939937510
Temps total pris : 2,30099987984s

La capture d'écran en cours d'exécution est la suivante :

Recommandations associées :

Implémentation Python des paramètres du robot Partager l'adresse IP du proxy et la méthode de se faire passer pour un navigateur

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn