Warum dauert unter Python so lange wenn ich 255 hoch 255 hoch 255 ausrechne?
Hallo.
Also als ich unter Python das hier eingeben (Also 255 hoch 255 hoch 255) dann braucht es irgendwie sehr lange bis er das ausrechnet.
Und die CPU Auslastung bei Python ist so ca. ganzezeit von 14% bis 16% und die RAM Auslastung wechselt hin und hier: Zwischen 50MB bis 69MB.
Doch da ich selber kein Mathe Profi bin, wollte ich fragen warum braucht er so lange zum ausrechnen? Denn ich warte schon 5 Minuten und es passiert immer noch nicht. Gibt es eine möglichgkeit das es schneller gehen kann? Weil der Python könnte schon mit höhere CPU Auslastung arbeiten, macht er aber nicht.
Was bedeutet „sehr lange“?
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.
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.
Ja das stimmt. Denn der Python ist schon jetzt mit 255 bis 260MB Ram ausgelastet.
Und wäre das unter QuatenPC (Falls irgendwann geben wird) das viel schneller ausrechnen?
So viel RAM wie nötig wäre gibt es wohl in 100 Jahren auf der ganzen Erde nicht.
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.
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
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
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?
Und weißt du wie viele Stunden es ungefähr dauern wird?