python int est infini

Le saviez-vous! Il n'y a pas de limite au nombre d'entiers qui peuvent être représentés en python! !! Puisque int en C est 32 bits, il ne peut représenter que 2147483647. Même le long long utilisé lorsqu'il s'agit de grands nombres ne peut représenter que 64 bits, c'est-à-dire 9223372036854775807. D'un autre côté, int en python est infini.

Eh bien

Quand j'entends qu'il n'y a pas de limite supérieure, c'est l'humanité qui me donne envie de traiter un grand nombre de matières fécales. Pour voir s'il y a vraiment une limite, et s'il n'y a pas de limite, combien de temps le calcul sera J'ai fait une expérience simple! Vérifiez en fait le temps requis pour le calcul et le temps requis pour l'affichage en fonction du code suivant.

test.py


num_list, time_list = [], []
for i in range(9):
    start = time.time()
    ans = 10 ** (10 ** i)
    end = time.time()
    print('Elapsed time to calculate 10 ** {} is {}'.format(10 ** i, end - start))
    num_list.append(10 ** i)
    time_list.append(end - start)
plt.plot(num_list, time_list)
plt.show()

Les résultats expérimentaux sont présentés dans le tableau ci-dessous! C'est difficile à comprendre, mais les nombres à l'extrême gauche du tableau représentent la partie $ n $ de $ 10 ^ n $. Par conséquent, 100 dans la colonne supérieure du tableau est le temps nécessaire pour calculer et afficher 10 $ ^ {100} $.

10^n calculate[s] print[s]
100 0.000 0.000
1000 0.000 0.000
10000 0.000 0.002992
1e05 0.01562 0.1396
1e06 0.1562 13.27
1e07 5.985 1324
1e08 221.7 -
1e09 8791 -

Même un si grand nombre peut être calculé correctement, mais cela prend beaucoup de temps. Lorsque $ n $ augmente 10 fois, le temps de calcul augmentera de 40 fois et le temps d'affichage augmentera de 100 fois. Au fait, même si vous dites "afficher", la valeur est trop grande pour être affichée sur la console à cause d'un bug (naturellement). De plus, imprimer 1e08 et 1e09 ne sont pas des données car cela a pris trop de temps et j'en ai eu marre. Le chiffre que le bogue est affiché à partir de 0 →![Print_bag.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419937/c813ae25-9631-1129- 6c24-2b0c1afd528e.png)

Le graphique est ci-dessous. Comme je l'ai mentionné ci-dessus, il semble que cela augmentera de façon exponentielle! calculate_time.png print_time.png

Au début, j'ai commencé à penser au calcul de Googolplex, mais en premier lieu     log2(10^{10^{100}}) \simeq 3.32*10^{100}bit = 4.15*10^{87}TB C'était une histoire impossible car elle ne nécessite que de la mémoire!

Résultat: un grand nombre peut être représenté!



Qu'as-tu pensé? J'ai essayé d'écrire un article sur un ton de wazap, Quel est le ton de Wazap? Je ne suis pas sûr parce que c'est devenu. Supplément: Un microcosme d'une société moderne où une seule personne qui dirige le programme travaille très dur ![resource.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419937/29e47660-2cbf-bb96-08af-5fb51017c6a3.png)

Recommended Posts

python int est infini
Python est facile
Qu'est-ce que python
Python est une instance
Qu'est-ce que Python
[Python] Qu'est-ce que Pipeline ...
[Python] Qu'est-ce que virtualenv
Le rond de Python n'est pas strictement rond
[Python] Débogage plus efficace!
Convertir numpy int64 en python int
Comment utiliser __dict__ en Python
Python est douloureux. Mais utilisez
Python est un langage pour adultes
La liste Python n'est pas une liste
Mémo int de type immuable Python
[Python] Python et sécurité-① Qu'est-ce que Python?
Le cycle de publication de Python est plus rapide!
[Python] * args ** Qu'est-ce que kwrgs?
Identité et équivalence: is et == en Python
Cours de base Python (1 Qu'est-ce que Python)
[Python] Qu'est-ce qu'une fonction zip?
[Python] Qu'est-ce qu'une instruction with?
Remarque Python: à propos de la comparaison en utilisant is
ppa: jonathonf / python-3.6 est maintenant privé
Différence entre == et est en python
Python
Utilisez le tissu tel quel en python (fabric3)
Golang vs Python - Golang est-il meilleur que Python?
Python est UnicodeEncodeError dans le menu fixe CodeBox
Générateur principal infini en Python3
[Python] Qu'est-ce que @? (À propos des décorateurs)
Quel est le meilleur, PyPy ou Python?
[python] Quelle est la clé triée?
Python pour la déclaration ~ Qu'est-ce qui est itérable ~
Il n'y a pas de commutateur en python
Erreur python d'aujourd'hui: l'image est vide
Puissance totale en Python (en utilisant functools)
À quoi sert le trait de soulignement Python (_)?
Déterminer le système d'exploitation exécutant Python
Python> Qu'est-ce qu'une tranche étendue?
Python in est aussi un opérateur
[Python] Qu'est-ce que la série pandas et DataFrame?
python Remarque: lorsque easy_install ne peut pas être utilisé
[Python] Erreur de nom: le nom'urlparse 'n'est pas défini
[Python] Qu'est-ce qui est hérité par l'héritage multiple?
Qu'est-ce que NaN? NaN Zoya (Python) (394 jours de retard)
"<" En python> pack ("<L", ...) est un peu todian
Erreur d'importation même si Python est installé
[Python] [pandas] Comment pd.DataFrame (). T est-il implémenté?
Inject est recommandé pour DDD en Python
Quel type de langage de programmation est Python?
Un mémo python utilisant perl --format est pratique.
Pourquoi Python est choisi pour l'apprentissage automatique
Où est écrit le processus d'instanciation python?
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
Hash en Perl est un dictionnaire en Python
Qu'est-ce qu'un chien? Volume d'installation Python
[python] [meta] Le type de python est-il un type?