Wie berechnet man Zahlen, die zu gross sind für Excel und co.

9 Antworten

Der Umkehrfunktionen Rechner lamprechts.de/gerd/php/RechnerMitUmkehrfunktion.php kann bis 200! exakt rechnen und bis 1e35! in wissenschaftlicher e-Schreibweise.

Bedenke: alles über 1e80 überschreitet die Anzahl der Elementarteilchen im Weltall!

Auch 999999999999999999^99999999999999 möglich (mit der pow(x,y) Funktion)

Man kann sich auch in EXCEL per VBA Funktionen schreiben, die mit großen Zahlen rechnen können...

Übrigens: 365! = 2.51041286755587322929294437488120... e778


jorgang  15.11.2012, 14:28

stimmt, das hab ich auch für 365! rausgekriegt, allerdings mit weniger Stellen. Ich habe mit den Logarithmen gerechnet. Wenn ich aber dann 365! - 364! bilde, dann kommt nichts Vernünftiges mehr raus.

0

Solche Aufgaben rechnet man nicht allgemein und formalistisch in Excel. Wenn man sich diese Formel anschaut, stellt man fest, dass man zunächst mit Auge, Hirn und Hand darüber gehen sollte. Dann kommt der Quotient aus den riesigen Zahlen in Zähler und Nenner durchaus in übersichtliche Größenordnungen, die eine Rechenanlage verarbeiten kann. Es ist immer ein Albtraum eines Ingenieurs, wenn bei der Rechnung auf unterschiedlichen Anlagen unterschiedliche Ergebnisse herauskommen. Das ist sehr oft dann durch unbemerkte Überschreitung der Genauigkeitsgrenzen der Rechner hervorgerufen. Nicht immer schreit der Rechner "Overflow". Z.B. bei Divisionen durch die Differenzen sehr großer Zahlen, bei der die Differenz extrem klein wird, schleichen sich große unbemerkte Rechenfehler ein. Sich darum zu kümmern, lernt man als Ingenieur, Physiker oder Mathematiker in der Vorleung zur "Numerischen Mathematik" in den ersten Semestern. Wenn man wie hier die Grenzen der Maschinen sieht, dann muss eben der Grips eingeschaltet werden.

Woher ich das weiß:Studium / Ausbildung – ca. 40 Jahre Arbeit als Leiter eines Applikationslabors

Wie definierst du denn die Fakultaet im Nenner, wenn n/x nicht ganzzahlig ist?

Nehmen wir zunaechst mal an n/x sei ganzzahlig und gleich m

Dann ist (365!)^x / (((365 - n/x)!)^x= (365!/(365-m)!)^x

= ( 365 * 364 * ... * 365-(m+1) * 365-m )^x

da sich die niedrigeren Faktoren rauskuerzen. Das sollte schon eher numerisch behandelbar sein, ansonsten Stirling Naeherung fuer die Fakultaet verwenden und evtl Gleichung logarithmieren.


ausdertonne  15.11.2012, 12:28

sorry, es muss natuerlich heissen

= ( 365 * 364 * ... * 365-(m-1) * 365-m )^x

und nicht (m+1)

0
jorgang  15.11.2012, 14:23
@ausdertonne

sorry, dies hatte ich noch nicht gesehen, bevor ich was geschrieben habe. Die Vorbehandlung mit dem Hirn, wie beschrieben, löst das Problem.

0

Ich weiß ja nicht wie groß x ist, aber 365! ^ 12 kann der Windows Taschenrechner noch ohne Überlauf. Bei x = 13 funktioniert es schon nicht. Wenn du aber ein exates Ergebnis, also keine Gleitkommadarstellung, haben willst, dann bietet sich das selbst Programmieren an. Die Programmiersprache Java hat Datentypen (BigInteger), mit denen es möglich ist, mit beliebig großen Zahlen zu rechnen.


jorgang  15.11.2012, 14:20

Wirklich? 365^12 will ich ja glauben, aber bei 365! ^12 ist die Zahl 365! eine Zahl mit weit über 700 Stellen.

0

Dann setze Dich hin und schreibe ein Programm, mit dem sich das Problem lösen lässt, in dem Du die den Bereich der Berechnung erweiterst. Also nicht mit einer 128bit Mantisse / Akku sondern mit einem 1024bit großem Feld, oder noch größer.

Mit den Grundlagen der Mathematik, lässt sich das in nahezu jeder Hochsprache umsetzen. Im Zweifelsfalle nimm Assembler, damit geht es garantiert.