Maison >développement back-end >Tutoriel Python >Exemple Python montrant comment calculer la valeur de pi à n'importe quel chiffre
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 :
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!