Article View: de.sci.informatik.ki
Article #23Re: Unl�sbares Problem!?
From: Danny Lade
Date: Fri, 18 Dec 1998 00:00
Date: Fri, 18 Dec 1998 00:00
43 lines
3116 bytes
3116 bytes
On Wed, 16 Dec 1998, Markus Kuhn wrote: >In Markus.Wurdak@t-online.de (Markus Wurdak) writes: >|> Ich habe folgendes Problem: Ich will ein Programm schreiben (Turbo >|> Pascal), welches mir die Zahl "9 hoch 9 hoch 9", also "9 hoch 387420489" >|> berechnet. Da diese Zahl (ca. 387420489 Ziffern) viel zu gro� f�r eine >|> Variable ist, h�tte ich folgende Fragen: >|> >Du berechnest 9^2, 9^4, 9^8, 9^16, 9^32, 9^64, usw. durch >fortw�hrendes Quadrieren. Du stellst 387420489 als Binaerzahl >dar, und multipliziert die 9^(2^i) f�r die die i-te Binaerziffer >des Exponenten 1 ist. Das ist der �bliche Square&Multiply >Algorithmus. Und summierst das Ergebnis auf ... > >Literatur: Donald E. Knuth, The Art of Computer Programming, >Volume II, Seminumerical Algorithms. > Gut, aber ganz so trivial ist das ja nun auch nicht ... 387420489 besteht naehmlich aus 29 Bit. Das heisst man muss immernoch mit 9^(2^28) multiplizieren und das ist auch eine Zahl mit 256152524 Stellen. Dafuer sind es somit nur 29 Multiplikationen mit sehr grossen Zahlen. Und ich weis nicht ob das Quadrieren so grosser Zahlen ohne weitere Komplikationen moeglich ist ... ich stell mir gerade (9^(2^27))^2 vor :-} Man multipliziere mit der ersten Stelle merke sich das Ergebnis, multipliziere mit der zweiten Stelle, summiere auf u.s.w. ... da ist man auch nicht schneller fertig als wenn man das gleich "von Hand" macht. Man kann das Byte natuerlich voll ausnutzen und so 369693100 / 256 gleich 1444114 Stellen abspeichern. Na damit laesst sich doch schon rechnen. Natuerlich rechnet man am Ende mit 'int', das erspart unnoetige Multiplikationen und Additionen. Falls eine grobe Implementierung gewuenscht ist, kann ich mir darueber ja nochmal Gedanken machen ... Danny -- In einer Irrsinnigen Welt vern�nftig sein zu wollen, ist schon wieder ein Irrsinn f�r sich. Voltaire
Technical Details
Message-ID:
<913970524.158134741@Phobos>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<36765AD0.141E39D@t-online.de> <7573h2$2lc$1@pegasus.csx.cam.ac.uk>Show Full Headers
Complete Article Headers
X-Google-Language: GERMAN,ASCII X-Google-Thread: 113080,a06195c287227431 X-Google-Attributes: gid113080,public X-Google-Thread: 102c5b,a06195c287227431 X-Google-Attributes: gid102c5b,public X-Google-Thread: 1102ea,a06195c287227431 X-Google-Attributes: gid1102ea,public X-Google-Thread: 113dff,a06195c287227431 X-Google-Attributes: gid113dff,public X-Google-Thread: f4da7,a06195c287227431 X-Google-Attributes: gidf4da7,public X-Google-Thread: 1032cb,a06195c287227431 X-Google-Attributes: gid1032cb,public From: Danny Lade <mld@gtc.ibu.de> Subject: Re: Unl�sbares Problem!? Date: 1998/12/18 Message-ID: <913970524.158134741@Phobos> X-Deja-AN: 423934316 Content-Transfer-Encoding: 8bit References: <36765AD0.141E39D@t-online.de> <7573h2$2lc$1@pegasus.csx.cam.ac.uk> Followup-To: de.sci.informatik.ki,de.sci.informatik.misc,fido.ger.informatik,maus.sci.informatik,z-netz.wissenschaft.informatik,de.sci.mathematik Content-Type: text/plain; charset="iso-8859-1" Organization: Friedrich-Schiller-University Jena, Germany Mime-Version: 1.0 Newsgroups: de.sci.informatik.ki,de.sci.informatik.misc,fido.ger.informatik,maus.sci.informatik,z-netz.wissenschaft.informatik,de.sci.mathematik