Delphi-PRAXiS
Seite 7 von 8   « Erste     567 8      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi 9hoch9hoch9 - hohe Zahlen (https://www.delphipraxis.net/16766-9hoch9hoch9-hohe-zahlen.html)

Matze 1. Mär 2004 15:49

Re: 9hoch9hoch9 - hohe Zahlen
 
Hi!

Herzlich willkommen in der DP!

Boah, dass es so lange dauert hätt ich nicht gedach. :shock:

-homer- 1. Mär 2004 15:55

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,


wer hat denn jetzt mal die fertige Lösung???



-homer-

Robert_G 1. Mär 2004 15:55

Re: 9hoch9hoch9 - hohe Zahlen
 
[ProllMode]
Kann ich ja heute Abend mit meinem neuen Prescott P4 ausprobieren.
Ich bin mir ziemlich sicher, bis Morgen früh habe ich dann nur 400.000 Jahre gebraucht :lol: :stupid:
[ProllMode]

-homer- 1. Mär 2004 15:57

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,


das wäre echt nett. Danke.


-homer-

Brainstalker 1. Mär 2004 16:16

Re: 9hoch9hoch9 - hohe Zahlen
 
@ -homer-
Ich denke nicht, das du je eine Lösung bekommen wirst, da die Prozessoren der heutigen Generation vieeeeel zu langsam sind. Ich weiß nicht was Hochleistungsrechner schaffen, aber für mich scheint es (in den nächsten 20 Jahren) unmöglich. Ich glaube auch nicht, das dein Lehrer dir die Aufgabe gestellt hat, damit du ihm das ergebnis lieferst, sondern das du dich einmal richtig mit mathe beschäftigst.

Leute ich hatte mich verrechnet, das Ergebnis müsste folgendermaßen lauten, denn die Zeit müsste potenziell steigen, da die Zahl auch potenziell steigt:


Zitat:

Zitat von Brainstalker
Hi Leutz!

Ich hab mir mal das gesamte Thema durchgelesen. Is ja schon ganz lustig was da rauskommt. Zum Spaß hab ich mal überschlagsweise ausgerechnet wie lange man brauchen würde um diese Zahl komplett auszurechnen. Man bräuchte mit einem 2GHz Prozessor ca.:

600.000 entspricht 1 = 1 Stunde
1.200.000 entspricht 2 = 16 Stunden
1.800.000 entspricht 3 = 256 Stunden
.
.
.

Wenn die Zeit potenziell ansteigt, würde folgende Rechnung rauskommen:
16^(n-1)


Gehen wir von der Zahl 380.000.000 ausgehen müssen wir folgendes rechnen:
380.000.000 / 600.000 = 633 gerundet
16^(633-1) = 1,0088556685366825650009227055012e+761
Das entspricht einer Zahl mit 761 Ziffern.
Das Ergebnis ist in Stunden, also teilen wir das Ganze durch 24 für Tage und durch 365 für Jahre:
4,2035652855695106875038446062548e+759 Tage
1,1516617220738385445216012619876e+757 Jahre

Also kommen wir zum Ergebnis von:

1,1516617220738385445216012619876e+757 Jahre



Habe ich richtig gerechnet?


MfG Brainstalker


-homer- 2. Mär 2004 07:27

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,

also mein Mathelehrer hat das Ergebnis auf seinem PC. Und der hat dafür kein Jahr gebraucht. Das Ergebnis soll ja auch eigentlich NUR 25Seiten lang sein. Dafür braucht man doch kein Jahr.



-homer-

-homer- 2. Mär 2004 07:31

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,

da ist mir noch eine Idee: Könnten wir nicht irgentwelche Mathe-Speed Units einbinden, die das errechnen der Zahl verschneller? Ich meine jetzt nicht so Units wie Math oder so, sondern eher welche, die wirklich NUR rechnen und sonst keinen weiteren Speicher verbrauchen.



-homer-

negaH 2. Mär 2004 11:12

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

600.000 entspricht 1 = 1 Stunde
1.200.000 entspricht 2 = 16 Stunden
1.800.000 entspricht 3 = 256 Stunden
Also ich habe das auch mal ausgerechnet:

9^600.000 = 100ms
9^1.200.000 = 220ms
9^1.800.000 = 545ms

auf meinem P4 1.5GHz Rechner. Die benutzte Bibliothek findest du sogar hier im Forum.
Somit dürften die 256 Stunden enorm stark übertrieben sein.

Allerdings bei 9^387.420.489 dürften nicht das Problem die Berechnung an sich sein, sondern der enorm hohe Speicherverbrauch. Rein theoretisch kann man 9^387.420.489 in Big O = O(1) berechnen, also schneller als eine Addition. Dazu benötigt man eine Mathematische Bibliothek die die Zahlen intern zur Basis 9 darstellt. Bei solchen Zahlen müsste man nur an der Ziffernpossition 387.420.489 eine 1 setzen und fertig wäre die Berechnung. Als Beispiel: wir wollen 2^387.420.489 berechen mit Binärzahlen. Wir setzen dann einfach in einem Speicher aus lauter Nullen an der Bitposition 387.420.489 eine 1 und schon steht im Speicher 2^387.420.489. Exakt so kann man auch 9^387.420.489 berechnen falls die Zahlenbasis zu 9 ist. 2^387.420.489 benötigt 387.420.489/8 Bytes an Speicher , das sind 47Mb. 9^(9^9) käme auf ca. 240Mb in Binärdarstellung.

Allerdings: 9^9^9 = (9^9)^9 =
196 62705 04755 52913 61807 59085 26912 11628 31034 50944 21476 69273 15415 53796 63911 96809

in 0.02 ms berechnet. Punkt vor Strich ansonsten von links nach rechts.

Gruß Hagen

-homer- 2. Mär 2004 12:50

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,

ok, solange will ich nun auch nicht vor meinem Pc sitzen. Könnt ihr mir denn sagen, wieviele Spalten das sind?


-homer-

negaH 2. Mär 2004 13:59

Re: 9hoch9hoch9 - hohe Zahlen
 
Ich habe mal die Berechnungen mit meiner Library hochgerechnet. Sie dauert ca. 5-6 Minuten, ABER !! sie benötigt zeitweise mehr als 900Mb Speicher. Nungut man könnte sagen bei 512Mb Hauotspeicher mache ich einfach die Auslagerungsdatei größer, Windows wird's schon richten. Geht aber nicht, die Performance sinkt dadurch auf 2 Prozent was die Berechnung erheblich verlangsammt.

Also, wenn einer eine Machine mit 1-2 GB Hauptspeicher hat, der soll sich melden und ich lasse ihm das Program zukommen.

Gruß Hagen


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr.
Seite 7 von 8   « Erste     567 8      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz