Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

-homer- 23. Feb 2004 09:52


9hoch9hoch9 - hohe Zahlen
 
hi,

gibt es eine Möglichkeit in einem MemoFeld die Zahl 9hoch9hoch9 anzuzeigen? Mit einer Integer wird es wohl kaum klappen, da die ja höchsten einen Wert von ca. 25000 speichern kann. Also, mit welchem Datentypen kann ich denn so eine große Zahl speichern?
Danke schon mal im Vorraus.


-homer-

sakura 23. Feb 2004 09:56

Re: 9hoch9hoch9 - hohe Zahlen
 
Integer geht bis über 2-Milliarden...

...:cat:...

MrKnogge 23. Feb 2004 09:57

Re: 9hoch9hoch9 - hohe Zahlen
 
Du kannst einen Integer auh nur für ganze Zahlen verwenden, somit hat du fast doppelsoviele Stellen, oder du musst dir einen eigenen Varablen-Typ machen.

[Nachtrag]

Zitat:

Zitat von sakura
Integer geht bis über 2-Milliarden...

...:cat:...

Waren das nicht über 32 Milliarden ?

[/Nachtrag]

-homer- 23. Feb 2004 10:03

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,

Integer kann ruhig bis 16Billionen gehen, aber um DAS ergebnis anzuzeigen brauche ich 25 DinA4 Seiten. :D


-homer-

Matze 23. Feb 2004 10:26

Re: 9hoch9hoch9 - hohe Zahlen
 
Delphi-Quellcode:
implementation

{$R *.dfm}

uses Math;

procedure TForm1.Button1Click(Sender: TObject);
var Erg: extended;
begin
  Erg := Power(9, 9);
  Erg := Power(Erg, 9);

  Canvas.TextOut(0, 0, FloatToStr(Erg));
end;
Müsste doch gehen, oder?

Stanlay Hanks 23. Feb 2004 10:37

Re: 9hoch9hoch9 - hohe Zahlen
 
Da bekommt er aber keine 25 DIN A4 Seiten lange Zahl, sondern irgendeinen xxxx,xxxExx Ausdruck.

sakura 23. Feb 2004 10:46

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von -homer-
DAS ergebnis anzuzeigen brauche ich 25 DinA4 Seiten.

Das stimmt nicht, 9^9^9 ist eine 78 stellige Zahl und dafür braucht man nicht einmal zwei Normzeilen!

...:cat:...

-homer- 23. Feb 2004 10:53

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,

@Matze: Da ist schon ein Ergebnis aber da ist ein 'E' drin. Wie kommt das dahin?


@All: Nicht 9*9*9 sonder 9hoch9hoch9, da braucht man mehr als nur 2 Zeilen.



-homer-

Matze 23. Feb 2004 10:55

Re: 9hoch9hoch9 - hohe Zahlen
 
Sorry, ahb ungenau gelesen, wie's ohne das E geht, kann ich dir leider nicht sagen. :(

sakura 23. Feb 2004 10:55

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von -homer-
@All: Nicht 9*9*9 sonder 9hoch9hoch9, da braucht man mehr als nur 2 Zeilen.

Während 9*9*9 = 729
ist 9^9^9 = 1,9662705047555291361807590852691e+77 also eine 78-stellige :!: Zahl und nicht mehr.

...:cat:...

Sharky 23. Feb 2004 10:57

Re: 9hoch9hoch9 - hohe Zahlen
 
Bei mir ist (9^9)^9 = 1,9662705047555291361807590852691 * 10^77

und für 78 Zeichen sollten zwei oder drei Zeilen ausreichen ;-)

[Edit]Die Katze war schneller... ich werde alt :stupid: [/Edit]

Jörn 23. Feb 2004 10:59

Re: 9hoch9hoch9 - hohe Zahlen
 
Das E steht für 'mal 10 hoch'.
1,9662705047555291361807590852691e+77
Laut WindowsTaschenrechner das Ergebnis.
Bedeutet:
1,9662705047555291361807590852691 * 10 hoch 77
Also wie Sakura schon gesagt hat, 78 Stellen. Größten Gleitkommatyp nehmen, mittels Power errechnen, passt. Also etwa:
Delphi-Quellcode:
result := power(power(9, 9), 9)
MfG

EDIT: Da waren se alle schneller, *schnüff*
Darstellen ohne E als String glaube floattostrf mit Parameter fffixed als TFloatFormat.

sakura 23. Feb 2004 11:15

Re: 9hoch9hoch9 - hohe Zahlen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Und im Anhang die Lösung ;-)

Der entscheidene Code:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  P1, P2, P3: PBigInt;
begin
  INew(P1);
  ISetStr(P1, '9');

  IPow(P1, 9);
  IPow(P1, 9);

  ShowMessage(IStr(P1, 10));
end;
Unter Nutzung der Library
Auszug aus der Lizenz
NX - Multiprecision integer library for Delphi
http://www.ellipsa.net/
Copyright (c), 2003, Marcel Martin.
All rights reserved.


...:cat:...

Matze 23. Feb 2004 11:19

Re: 9hoch9hoch9 - hohe Zahlen
 
Kann man das nicht irgendwie einfacher "zu Fuß" machen?

sakura 23. Feb 2004 11:48

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von Matze
Kann man das nicht irgendwie einfacher "zu Fuß" machen?

Wenn Du eine noch einfachere Lösung hast, gerne. Aber so hast Du alle Stellen ;-)

...:cat:...

nailor 23. Feb 2004 13:15

Re: 9hoch9hoch9 - hohe Zahlen
 
wenn mich nicht alles irrt, dann ist 9^9^9 aber 9^(9^9) und da brauchst du eine Menge Normzeilen dafür...

dizzy 23. Feb 2004 13:30

Re: 9hoch9hoch9 - hohe Zahlen
 
Warum sollte man SO klammern :?:
Doch eher (9^9)^9 oder nicht!? 9^(9^9) kann auch der Ein-Taschenrechner nicht. Ungültige Eingabe :D

...ach halt! Ne stimmt, hast ja Recht! Erst den Exponenten komplett ausrechnen, und DANN die Basis potenzieren. Ui krass. Dann brauchsts etwas mehr Zeichen, ganz recht.

Also, ich hab nüx gesagt :gruebel:

Jörn 23. Feb 2004 13:58

Re: 9hoch9hoch9 - hohe Zahlen
 
Jaaa stimmt. Ich bezweifle aber mal stark, das es für Delphi Datentypen gibt, welche eine solche Zahl darstellen können. Wäre auch schon ein paar KB groß, schätze ich mal. Und nicht ein paar Byte.

sakura 23. Feb 2004 14:51

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von Jörn
das es für Delphi Datentypen gibt, welche eine solche Zahl darstellen können

Native nicht, stimmt. Aber die oben genannte Bibliothek kann diese Zahlen nutzen (auch wenn es bei so großen Zahlen laaange dauert)

...:cat:...

nailor 23. Feb 2004 14:54

Re: 9hoch9hoch9 - hohe Zahlen
 
wenn man davon augeht, dass die Zahl ca. 300 Millionen Ziffern hat also so ca. (als string) 300 MB braucht... dauert es seeeehr laaange.

Stanlay Hanks 23. Feb 2004 14:56

Re: 9hoch9hoch9 - hohe Zahlen
 
Kann man das schätzen? Ich will das jetzt nicht ausprobieren. :stupid:

nailor 23. Feb 2004 14:58

Re: 9hoch9hoch9 - hohe Zahlen
 
9 ^ (9^9) = 9 ^ ( 387,420,489 ) < 10 ^ ( 387,420,489 )

hat also ca. 300 Millionen Ziffern

Stanlay Hanks 23. Feb 2004 15:04

Re: 9hoch9hoch9 - hohe Zahlen
 
Ich meinte, wie lange das dauert :wink:

sakura 23. Feb 2004 15:09

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von Stanlay Hanks
Kann man das schätzen?

Ja...

10^(10^10) hat 10^(1000000000) oder 10^(1e10) Ziffern, also 1e1000000000, eine 1 mit 1.000.000.000 Nullen hinten dran, dementsprechend ist 9^(9^9) nur "etwas" kleiner.

...:cat:...

sakura 23. Feb 2004 15:10

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von Stanlay Hanks
Ich meinte, wie lange das dauert :wink:

Auf was für einem Rechner ;-) Also, es wird schon ein paar Minütchen, Stündchen, ... dauern.

...:cat:...

dizzy 23. Feb 2004 15:10

Re: 9hoch9hoch9 - hohe Zahlen
 
Leck mich am ...sachichnich... wofür in Gottes Namen braucht man SO große Zahlen!? Wird's n Weltformelrechner? :gruebel:

Stanlay Hanks 23. Feb 2004 15:16

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von sakura
Zitat:

Zitat von Stanlay Hanks
Ich meinte, wie lange das dauert :wink:

Auf was für einem Rechner ;-) Also, es wird schon ein paar Minütchen, Stündchen, ... dauern.

...:cat:...

P4 , 2 GHz, Windows XP Home (Klassisches Design), 256 MB RAM (nur :()

-homer- 24. Feb 2004 09:57

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,

@Dizzy.
vor einem Jahr ungefähr habe ich Mist im unterricht gemacht (nicht, dass ich das heute nicht mehr machen würde). Unser Mathelehrer ist voll ausgerastet. Ich sollte doch bitte 9^(9^9) rechnen. Er sagte mir, dass ich dafür ungefähr 25 DinA4 Seiten brauchen würde. Am anfang dachte ich mir: Denk sie dir einfach aus. Aber das war mir dann zu doof.
Aus Ärger des Lehrers wurde Geschichte
Aus der Geschichte wurde Legende
Aus Legende wurde Mytos
Und nach einem Jahr wusste keiner mehr um den Ring (Mein Lehrer HATE es vergessen)
Nun da der Schatten naht (Mein Lehrer hat mich gefragt, ob ich die Lösung hätte(nach einem jahr)), regt es sich wieder in Mordor (ich überlege, wie ich die Zahl rausbekomme).

@All:
Danke, für eure Bemühungen, aber die Lösung habe ich immernoch nicht :cry:


-homer-


ps.: Der Post ist mir doch mal sehr gut gelungen, oder?

Stanlay Hanks 24. Feb 2004 11:40

Re: 9hoch9hoch9 - hohe Zahlen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi. Also ich hab jetzt mal unter Verwendung der von Sakura angesprochenen Units ein kleines Prog geschrieben. Ich glaub, jetzt weiß ich, warum dir dein Lehrer ein Jahr Zeit gegeben hat :stupid:
Ich kann allerdings nicht garantieren, dass die Berechnung richtig ist :gruebel:
Jede Minute wird der aktuelle Stand (die Zahl) in einem RichEdit angezeigt und zwischengespeichert, damit nicht zu viel verloren geht, wenn das Prog abstürzt. Die Berechnung kann auch unterbrochen werden. (Übrigens brauchte das Programm bei mir (P4, 2 GHz) ab dem 20.000sten Rechenschritt für 100 Rechenschritt 10 Sekunden :pale: Also viiiiel Zeit mitbringen). Ich weiß auch nicht, inwiefern das dem Prozessor schaden kann, wenn er dauernd zu 100 % belastet wird. Also Benutzung auf eigene Gefahr :wink:

Man liest sich, Stanlay :hi:

Matze 24. Feb 2004 11:48

Re: 9hoch9hoch9 - hohe Zahlen
 
Ich denke mal, wenn man Application.ProcessMessages weglässt, ist's um einiges schneller. ;)

Luckie 24. Feb 2004 11:50

Re: 9hoch9hoch9 - hohe Zahlen
 
Ist aber notwendig, wenn er die Funktiuon nicht in einen Thread auslagert. Aber man sollte sie nur bei jedem 10. oder 20. oder gar 100. mal aufrufen.

Matze 24. Feb 2004 11:52

Re: 9hoch9hoch9 - hohe Zahlen
 
Ja, das ist auch OK, aber nicht bei jedem Schritt, ich denke, ein Thread wäre das allerbeste, oder?

Stanlay Hanks 24. Feb 2004 11:56

Re: 9hoch9hoch9 - hohe Zahlen
 
Ich hab das ProcessMessages da reingepackt, damit die Zahlen in dem Button geschrieben werden können. Das hab ich gemacht, weil a) sonst die ganze Performance futsch is b) Man sonst meint, das Programm wäre abgeschmiert c) Ich das nur so auf die schnelle gebastelt habe und d) ich noch nicht so viel mit Threads gearbeitet habe (Bin aber grade über einem Tutorial). Fest steht, dass es - ob mit oder ohne Thread - ziiiiiemlich lange dauert. :wink:

Man liest sich, Stanlay :hi:

Matze 24. Feb 2004 12:01

Re: 9hoch9hoch9 - hohe Zahlen
 
Jo, stimmt. ;)

Hab abgebrochen. :mrgreen:

sakura 24. Feb 2004 12:07

Re: 9hoch9hoch9 - hohe Zahlen
 
Zitat:

Zitat von Stanlay Hanks
und zwischengespeichert, damit nicht zu viel verloren geht, wenn das Prog abstürzt

Und wo, damit ich es auch wieder löschen kann...

...:cat:...

Stanlay Hanks 24. Feb 2004 12:08

Re: 9hoch9hoch9 - hohe Zahlen
 
Der Pfad wird in dem Editfeld angegeben. :wink:

stoxx 24. Feb 2004 13:22

Re: 9hoch9hoch9 - hohe Zahlen
 
ich hab zwar jetzt nicht alles gelesen im Thread, also sorry, falls das schon aufgetaucht ist, aber es gibt für solche "BigNums" extra Units.


http://www.bsdg.org/swag/DELPHI/0464.PAS.html

Stanlay Hanks 24. Feb 2004 13:25

Re: 9hoch9hoch9 - hohe Zahlen
 
Jo, das kam schon vor :wink: Auf der ersten Seite hat Sakura einen Link dazu gepostet. Aber deiner hier kommt auch gleich zu meinen Favoriten :D

Man liest sich, Stanlay :hi:

sakura 24. Feb 2004 15:23

Re: 9hoch9hoch9 - hohe Zahlen
 
Liste der Anhänge anzeigen (Anzahl: 2)
So, ich habe mich auch ein wenig gequält. Nach 32 Minuten hatte ich immerhin schon 9^280.000 berechnet. Das Ergebnis ist im Anhang. Desweiteren habe ich eine Unit getippt, die auf das Problem optimiert ist und füge diese bei. Viel Spaß beim weitertüfteln. Alles ohne Kommentar, da es mit nur um den Spaß an der Freude ging.

...:cat:...

-homer- 24. Feb 2004 15:35

Re: 9hoch9hoch9 - hohe Zahlen
 
hi,


danke werd es gleich mal ausprobieren (Internet Cafe) :mrgreen:


-homer-


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 1 von 2  1 2      

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