Calculez des millions de chiffres dans la racine carrée de 2 avec python

Créez un programme qui calcule des millions de chiffres de racines parallèles de 2 avec python. La méthode de calcul utilise la méthode d'itération Newton suivante pour les nombres inverses. Itératif: x = x + x * (1-x * x / 2) / 2 La particularité de cette méthode est qu'il n'y a pas de division à plusieurs chiffres. La partie de calcul à n chiffres en python est la suivante. def sqrt2(n):  bit, dec = 40, 12  d12 = 100001000010000  x = int( math.sqrt(2)(1 << bit) )  while dec <= n:   dec = dec << 1   d2 = 1 << (2bit)   x0 = (xx) >> 1   x1 = (d2 - x0) >> 1   x2 = (xx1) >> bit   x = (x << bit) + x2 + 1   bit = 2bit   d12 = d12d12   x = (x*d12) >> bit  dec_o = (n // 100)*100  return x

format (x) est requis pour convertir le résultat du calcul de x = sqrt2 (n) en nombre décimal. Le python entier est publié dans la section du programme python à https://ecc-256.com. Téléchargez sqrt2 et modifiez sqrt2.py et la première importation à importer. Tapez python sqrt2.py à l'invite de commande. Ensuite, entrez le nombre de chiffres de sortie. 1000000 pour 1 million de chiffres

Le temps de calcul de 3 millions, 6 millions, 12 millions pour un ordinateur personnel Windows10 (4Ghz) est le suivant. x=sqrt(n) : 6.7, 19.9, 59.7 (s) format(x) : 136, 545, 2180 (s)

La conversion décimale pour la sortie prend beaucoup plus de temps que le calcul de sqrt (2). sqrt (2) prend deux fois plus de chiffres et trois fois plus longtemps, et la conversion décimale prend quatre fois plus de temps. La multiplication de calcul est la méthode de Karatsuba, et la multiplication de conversion est due à la formule de définition.

Même en python, il peut être accéléré en mettant à l'échelle environ 1000 chiffres décimaux (la valeur est un entier binaire) et en appliquant une conversion résiduelle à grande vitesse (FMT). L'objectif est dans les 3 minutes sur un ordinateur personnel 4Ghz, y compris le calcul de 100 millions de chiffres et la conversion en caractères décimaux (fin février).

Recommended Posts

Calculez des millions de chiffres dans la racine carrée de 2 avec python
Calculez le nombre total de combinaisons avec python
[Python] Calculez le nombre de chiffres requis lors de la saisie de 0 [Note]
Comment obtenir le nombre de chiffres en Python
Calculer le coefficient de régression d'une analyse de régression simple avec python
Essayez de gratter les données COVID-19 Tokyo avec Python
[Homologie] Comptez le nombre de trous dans les données avec Python
Calculer le mois précédent en Python
Exportez le contenu de ~ .xlsx dans le dossier en HTML avec Python
Visualisez la fréquence des occurrences de mots dans les phrases avec Word Cloud. [Python]
Astuces: [Python] Calculez la valeur moyenne de la zone spécifiée avec bedgraph
Vérifiez le comportement du destroyer en Python
Vérifier l'existence du fichier avec python
Afficher Python 3 dans le navigateur avec MAMP
Le résultat de l'installation de python sur Anaconda
Principes de base pour exécuter NoxPlayer en Python
À la recherche du FizzBuzz le plus rapide en Python
Un mémo d'un programme qui récupère une date à deux chiffres avec javascript, Ruby, Python ou un script shell.
Calculer l'itinéraire le plus court d'un graphe avec la méthode Dyxtra et Python
Calculez la probabilité d'être une pièce de calmar avec le théorème de Bayes [python]
Recevez une liste des résultats du traitement parallèle en Python avec starmap
J'ai essayé des centaines de millions de SQLite avec python
Sortie du nombre de cœurs de processeur en Python
[Python] Récupérez les fichiers dans le dossier avec Python
[Python] Trier la liste de pathlib.Path dans l'ordre naturel
Préparer l'environnement d'exécution de Python3 avec Docker
[Note] Exportez le html du site avec python.
Faites correspondre la distribution de chaque groupe en Python
Afficher le résultat du traitement de la géométrie en Python
[Automation] Extraire le tableau en PDF avec Python
Copiez la liste en Python
Vérifiez la date du devoir de drapeau avec Python
Découvrez la fraction de la valeur saisie en python
Trouvez la solution de l'équation d'ordre n avec python
L'histoire de la lecture des données HSPICE en Python
[Note] À propos du rôle du trait de soulignement "_" en Python
Résolution d'équations de mouvement en Python (odeint)
Sortie sous la forme d'un tableau python
Convertir le code de caractère du fichier avec Python3
Une doublure qui produit 10000 chiffres de rapport de circonférence avec Python
[Python] Déterminez le type d'iris avec SVM
J'ai installé Pygame avec Python 3.5.1 dans l'environnement de pyenv sur OS X
Comparez la somme de chaque élément dans deux listes avec la valeur spécifiée en Python
[Numpy, scipy] Comment calculer la racine carrée d'une matrice Elmeet à valeur semi-régulière
Comment obtenir une liste de fichiers dans le même répertoire avec python
le zen de Python
Afficher n chiffres après la virgule décimale en python
Découvrez la bonne efficacité de calcul de la vectorisation en Python
Extraire le tableau des fichiers image avec OneDrive et Python
Apprenez Nim avec Python (dès le début de l'année).
[Python] Obtenez les nombres dans l'image graphique avec OCR
Détruire l'expression intermédiaire de la méthode sweep avec Python
[python] Récupère la liste des classes définies dans le module
Visualisez la gamme d'insertions internes et externes avec python
Explorez l'URL contenue dans le tweet Twitter avec python
L'histoire de FileNotFound en Python open () mode = 'w'
Convertissez l'image au format .zip en PDF avec Python
Une doublure qui produit 1000000 chiffres de rapport de circonférence avec Python