1000 chiffres de pi en python
J'ai réfléchi à cette question et je ne peux pas la comprendre. Peut-être que vous pouvez m'aider. Le problème est que mon code ne fonctionne pas pour la sortie des 1000 décimales de pi dans la langue de programmation python.
Voici mon code:
def make_pi():
q, r, t, k, m, x = 1, 0, 1, 1, 3, 3
while True:
if 4 * q + r - t < m * t:
yield m
q, r, t, k, m, x = (10*q, 10*(r-m*t), t, k, (10*(3*q+r))//t - 10*m, x)
else:
q, r, t, k, m, x = (q*k, (2*q+r)*x, t*x, k+1, (q*(7*k+2)+r*x)//(t*x), x+2)
digits = make_pi()
pi_list = []
my_array = []
for i in range(1000):
my_array.append(str("hello, I'm an element in an array \n" ))
big_string = "".join(my_array)
print "here is a big string:\n %s" % big_string
Je sais que ce code peut être fixé au travail, mais je ne suis pas sûr de ce que pour fixer à...L'instruction print dit ici, c'est une grosse corde et la my_array.append(str("hello, im an element in an array \n))
est juste un bouche-pores pour l'instant. Je sais comment tout le code est utilisé pour le travail, mais comme je l'ai dit avant, je n'arrive pas à la tirer hors de ce code.
source d'informationauteur bobimo | 2012-01-25
Vous devez vous connecter pour publier un commentaire.
Exécuter ce
Et de lire sur
yield
opérateur à partir d'ici:Que signifie le "rendement" mot-clé le faire en Python?
Voici la réponse:
Si vous ne voulez pas mettre en place votre propre algorithme, vous pouvez utiliser mpmath.
Référence
Mise à jour: Code prend en charge les anciennes et les nouvelles installations de SymPy (voir commentaire).*
Ici, vous pouvez vérifier si votre programme de sorties correctes 1000 chiffres:
http://spoj.com/CONSTANT
Bien sûr, vous pouvez utiliser la commande diff ou tc en tant que bien, mais vous devez copier ces 1000 chiffres à partir de quelque part et il vous suffit d'envoyer votre programme et de vérifier si le score est plus grand que 999.
Vous pouvez essayer d'imprimer encore plus de chiffres là et donc d'obtenir plus de points. Peut-être que vous auriez plaisir à elle.
Je ne suis pas familier avec votre algorithme. Est-ce une mise en œuvre de BBP?
Dans tous les cas, votre
make_pi
est un générateur. Essayez de l'utiliser dans une boucle for:Noter que cette boucle est infinie:
make_pi()
jamais jetteStopIteration
Est-ce à faire ce que vous voulez?
wallis formule peut obtenir à 3.141592661439964 mais un moyen plus efficace est nécessaire pour résoudre ce problème.
https://www.youtube.com/watch?v=EZSiQv_G9HM
Ici est une autre façon que j'ai trouvée ici --> Python pi calcul? rapprochant python basé sur les frères Chudnovsky formule pour générer des Pi que j'ai sightly modifié pour mon programme.
J'espère que cette aide comme vous pouvez générer un certain nombre de chiffres de pi que vous souhaitez générer.