![]() |
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- |
Re: 9hoch9hoch9 - hohe Zahlen
Integer geht bis über 2-Milliarden...
...:cat:... |
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:
[/Nachtrag] |
Re: 9hoch9hoch9 - hohe Zahlen
hi,
Integer kann ruhig bis 16Billionen gehen, aber um DAS ergebnis anzuzeigen brauche ich 25 DinA4 Seiten. :D -homer- |
Re: 9hoch9hoch9 - hohe Zahlen
Delphi-Quellcode:
Müsste doch gehen, oder?
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; |
Re: 9hoch9hoch9 - hohe Zahlen
Da bekommt er aber keine 25 DIN A4 Seiten lange Zahl, sondern irgendeinen xxxx,xxxExx Ausdruck.
|
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
...:cat:... |
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- |
Re: 9hoch9hoch9 - hohe Zahlen
Sorry, ahb ungenau gelesen, wie's ohne das E geht, kann ich dir leider nicht sagen. :(
|
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
ist 9^9^9 = 1,9662705047555291361807590852691e+77 also eine 78-stellige :!: Zahl und nicht mehr. ...:cat:... |
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] |
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:
MfG
result := power(power(9, 9), 9)
EDIT: Da waren se alle schneller, *schnüff* Darstellen ohne E als String glaube floattostrf mit Parameter fffixed als TFloatFormat. |
Re: 9hoch9hoch9 - hohe Zahlen
Liste der Anhänge anzeigen (Anzahl: 1)
Und im Anhang die Lösung ;-)
Der entscheidene Code:
Delphi-Quellcode:
Unter Nutzung der Library
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; Auszug aus der Lizenz NX - Multiprecision integer library for Delphi ![]() Copyright (c), 2003, Marcel Martin. All rights reserved. ...:cat:... |
Re: 9hoch9hoch9 - hohe Zahlen
Kann man das nicht irgendwie einfacher "zu Fuß" machen?
|
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
...:cat:... |
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...
|
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: |
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.
|
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
...:cat:... |
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.
|
Re: 9hoch9hoch9 - hohe Zahlen
Kann man das schätzen? Ich will das jetzt nicht ausprobieren. :stupid:
|
Re: 9hoch9hoch9 - hohe Zahlen
9 ^ (9^9) = 9 ^ ( 387,420,489 ) < 10 ^ ( 387,420,489 )
hat also ca. 300 Millionen Ziffern |
Re: 9hoch9hoch9 - hohe Zahlen
Ich meinte, wie lange das dauert :wink:
|
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
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:... |
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
...:cat:... |
Re: 9hoch9hoch9 - hohe Zahlen
Leck mich am ...sachichnich... wofür in Gottes Namen braucht man SO große Zahlen!? Wird's n Weltformelrechner? :gruebel:
|
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
|
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? |
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: |
Re: 9hoch9hoch9 - hohe Zahlen
Ich denke mal, wenn man Application.ProcessMessages weglässt, ist's um einiges schneller. ;)
|
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.
|
Re: 9hoch9hoch9 - hohe Zahlen
Ja, das ist auch OK, aber nicht bei jedem Schritt, ich denke, ein Thread wäre das allerbeste, oder?
|
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: |
Re: 9hoch9hoch9 - hohe Zahlen
Jo, stimmt. ;)
Hab abgebrochen. :mrgreen: |
Re: 9hoch9hoch9 - hohe Zahlen
Zitat:
...:cat:... |
Re: 9hoch9hoch9 - hohe Zahlen
Der Pfad wird in dem Editfeld angegeben. :wink:
|
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.
![]() |
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: |
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:... |
Re: 9hoch9hoch9 - hohe Zahlen
hi,
danke werd es gleich mal ausprobieren (Internet Cafe) :mrgreen: -homer- |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr. |
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