J'essaie (encore une fois) d'améliorer la programmation, cette fois en python, et j'ai atteint un barrage routier. J'ai essayé de comprendre pourquoi cela ne fonctionne pas pendant un moment maintenant, donc si je pouvais avoir de l'aide, ce serait vraiment, vraiment génial. Je les instructions comme un commentaire, mais la série ne copier au texte, il est sur wikipedia mais comme http://en.wikipedia.org/wiki/Pi#Estimating_.CF.80Calculer pi en utilisant une série dans mon livre
#19. Write a program that approximates the value of pi by summing the terms of this series:
#The program should prompt the user for n, the number of terms to sum
# and then output the sum of the first n terms of this series.
def pi() :
n = 0.0
p = input()
for i in range(-3,p*4,4):
n = n + 4.0/i - 4.0/(i + 2)
print n
Quand je dis 1000000, il me donne 5,80825432026; cette valeur ne change pas beaucoup. De toute façon, quelqu'un peut-il m'aider s'il vous plait? À ce stade, je n'ai rien d'autre que je puisse penser.
C'est génial; Grâce à votre aide, j'ai appris à quel point il est facile de définir une variable dans une fonction simplement en l'appelant, ce que je n'ai pas compris dans mon livre. J'ai aussi appris que neat + = trick. Mais un problème que je trouve dans chaque réponse que je peux comprendre est que cela ne se calcule pas avec le bon nombre de termes; c'est toujours deux fois la quantité d'entre eux qu'il devrait être. Je ne peux pas comprendre comment le changer pour fonctionner de cette façon, cependant. – caleb
On dirait qu'il se réduit à: 'def pi (n): return 8 * somme (1.0/(i * (i + 2)) pour i dans xrange (1, n * 4, 4)) ' – hughdbrown
@caleb : Vous avez déjà dit quel est le problème: "Pour obtenir n termes que vous devez faire (n // 2) itérations, vous faites environ n itérations." Essayez 'n * 2' au lieu de' n * 4' comme limite supérieure. Cela vous rapproche du nombre requis :-) –