Warum dauert unter Python so lange wenn ich 255 hoch 255 hoch 255 ausrechne?

skiddy  05.03.2022, 20:04

Was bedeutet „sehr lange“?

PrincPersia 
Fragesteller
 05.03.2022, 20:14

Seit wann weißt du nicht was "Sehr lange" bedeutet?

4 Antworten

Die Zahl ist eben sehr, sehr groß. Dementsprechend dauert es sehr lange, und es wird viel Speicher benötigt die exakte Zahl zu berechnen.

Die Zahl hat mehr als 1,1 ⋅ 10⁶¹⁴ Ziffern. Also: Die Anzahl der Ziffern (nicht die Zahl selbst, sondern die Anzahl ihrer Ziffern!) ist eine 615-stellige Zahl.


PrincPersia 
Fragesteller
 05.03.2022, 20:12

Und weißt du wie viele Stunden es ungefähr dauern wird?

0
mihisu  05.03.2022, 20:15
@PrincPersia

Das Problem wird eher sein, dass du irgendwann nicht mehr genug Speicher haben wirst, und die Berechnung abbricht, wenn der Speicher voll ist. Wie lange es dauert, kommt stark auf deine Rechenleistung und den zur Verfügung stehenden Speicher an.

Die Zahl hat im Binärsystem etwa 3,7 ⋅ 10⁶¹⁴ Stellen, weshalb man, wenn man die exakte Zahl komplett ausgeschrieben/ausgerechnet abspeichern möchte auch etwa 3,7 ⋅ 10⁶¹⁴ Bit an Speicher benötigt. So viel wirst du definitiv nicht haben.

0
PrincPersia 
Fragesteller
 05.03.2022, 20:21
@mihisu

Ja das stimmt. Denn der Python ist schon jetzt mit 255 bis 260MB Ram ausgelastet.

0
PrincPersia 
Fragesteller
 05.03.2022, 20:21
@PrincPersia

Und wäre das unter QuatenPC (Falls irgendwann geben wird) das viel schneller ausrechnen?

0
Kreasteve  05.03.2022, 20:32
@PrincPersia

So viel RAM wie nötig wäre gibt es wohl in 100 Jahren auf der ganzen Erde nicht.

0
Seit wann weißt du nicht was "Sehr lange" bedeutet

“Sehr lange“ ist keine eindeutige Zahl. Ich kann nicht erriechen, ob du Benchmark-Tests mit verschiedenen Sprachen machst und dein Python-Ergebnis mit z.B. „25 sek“ für dich „sehr lange“ ist oder ob du 5h daran sitzt. Daher drück dich doch einfach normal aus.


skiddy  05.03.2022, 20:43

Puh, ich muss mich wohl korrigieren.

Ich war, aus irgendeinem Grund, fest davon entschlossen, dass „pow(pow255,255),255)“ das Gleiche wäre wie „255 ** 255 ** 255“. Ich merke erst jetzt, dass das eine absolut falsche Annahme war und ich zu schnell geantwortet habe.

Naja, jedem passiert mal ein Fehler

0

Die größe des gesamten Internets inklusive Clouds wird auf 600 Exabytes geschätzt, also 6*10²⁰ Bytes.

Dein Ergebnis belegt etwa 10⁶¹⁴ Bytes.

Der Speicherplatz des Internets reicht also BEI WEITEM nicht, um das Ergebnis (exakt) abzuspeichern.

Man schätzt, dass das Universum bis zu 10⁸⁹ Atome hat.

könnte jedes dieser Atome "1 Internet" speichern, hätte man erst einen Speicherplatz von etwa 10¹⁰⁹ Bytes

Von Experte DerRoll bestätigt

I-it's too big, senpai!~ Dx

Das Ergebnis der Rechnung ist eine sehr große Zahl. Ich weiß nicht einmal, ob Python das überhaupt vernünftig darstellen kann. Wofür brauchst du das?