Zitat:
@Hagen: Geschätzt sind 4 Minuten. Nach knap 6 Minuten hat Dein Proggie die Datei 9x9x9.bin gespeichert - seit dem macht es weiter und weiter und weiter ... nur was
Tja, es wandelt nun die errechnete Binärzahl von 9^(9^9) in einen Dezimal Zahlen String um. Dies wird mit Sicherheit länger dauern als die eigentliche Berechnung von 9^(9^9).
Bei der Berechnung von 9^(9^9) sind ausschließlich nur Multiplikationen und Quadrierungen nötig. Bei der Umwandlung in einen Dezimal-String sind aber zusätzlich Divisionen und String-Operationen nötig. Ich habe zwar für diesen Algo. wesentlich effizientere Methoden benutzt als Marcel Martin's Code, aber denoch must du bedenken das wir hier von einer rießigen Zahl reden.
Man könnte sich den ganzen Umrechnungs-quatsch sparen indem man nicht zur Zahlenbasis 2^32 sondern 10^9 rechnet. D.h. die Zahlen und alle Berechnungen intern werden auf Speicherstrukturen durchgeführt die kleine Happen zu 10^9 enthalten. Am Ende käme eine große Zahle raus die mit der Dezimaldarstellung identisch wäre. ABER! dadurch sinkt die Performance der eigentlichen Berechnung erheblich, und viel schlimmer noch: ich müsste meinen kompletten Code komplett neu schreiben. Die Anzeigen zu den Basen 2,4,8,16,32,64 ist dageben enorm schnell mit meiner Library, sowie auch Marcel's, da wir beide zur Zahlenbasis 2^32 arbeiten. 2^32 ist nur eine Potenz der Basis 2, d.h. im Grunde arbeiten beide Libraries mit echten Binärzahlen.
Ich bin aber noch am überlegen, denn wenn ich mich richtig erinnere gibt es bei Potenzen zu 9 ganz bestimmte Tricks wie man ohne aufwendige Berechnungen das Resultat erzielen kann.
Gruß Hagen