Dokumentation

Arithmetik für große Zahlen

Promathika beherrscht den Umgang mit beliebig großen ganzen und rationalen Zahlen. Diese Fähigkeit soll nun an einigen Beispielen demonstriert werden.


Brüche und Dezimalzahlen

Rechenoperationen mit Brüchen:
Bruchrechenoperationen sind mit Promathika mühelos möglich, wie die folgenden Beispiele zeigen. Dabei werden betragsmäßig beliebig große Zähler und Nenner unterstützt. Auf diese Weise können Rechenoperationen mit Promathika exakt und ohne Rundungsfehler durchgeführt werden.

Eingabe: 2/3*4/5+1/5
Ausgabe: 11/15

Eingabe: 13/128 - 1/3
Ausgabe: -89/384

Zahlen als Dezimalbruch ausgeben:
Standardmäßig gibt Promathika Zahlen als Bruch aus (z.B. 1/5). Oft ist die Darstellung als Dezimalbruch praktischer (z.B. 0,2). Mit dem Befehl Dezimalbruch(Zifferanzahl) wird Promathika in einen Modus geschaltet, in welchem es jede Zahl als Dezimalbruch mit angegebener Ziffernanzahl ausgegeben wird. Das Umschalten von Promathika lässt sich an dem folgenden Beispiel nachvollziehen:

Eingabe: 2/6+10
Ausgabe: 31/3

Eingabe: dezimalbruch(5)
Ausgabe: 5

Eingabe: 2/6
Ausgabe: 10,333

Hinweise zum Befehl Dezimalbruch:

  • Um Promathika in den Brüche-Modus zurück zu schalten, verwenden Sie den Befehl dezimalbruch(0).
  • Um eine rationale Zahl, wie z.B. 31/3, als Dezimalbruch darzustellen, muss gerundet werden. D.h. Zahlen in der Dezimalbruchdarstellung sind nicht mehr exakt.
  • Promathika rechnet auch bei eingeschaltetem Dezimalbruch-Modus intern exakt mit Brüchen. Erst bei der Ausgabe der Zahlen werden diese in Dezimalbrüche umgewandelt. Dadurch entstehen keine unnötigen Rundungsfehler.

Rechnen mit großen ganzen Zahlen

Rechenoperationen mit großen ganzen Zahlen:
Ähnlich wie bei den rationalen Zahlen kann Promathika auch mit beliebig großen ganzen Zahlen umgehen:

Eingabe: 139347659238765921837451865734958 * 59172396418276395878761735247516325712910 + 5
Ausgabe: 8245534932435152358803594300566449549237825485000688740378037790458907785

Division ganzer Zahlen und Modulus:
Promathika kann mit dem Befehl div zwei beliebige ganze Zahlen ohne Rest durcheinander dividieren. Umgekehrt lässt sich dieser Rest mit dem Befehl mod (für Modulo) zurückgeben. Zu beachten ist, dass die beiden Zahlen durch ein Semikolon zu trennen sind, wie das folgende Beispiel zeigt.

Eingabe: div(57632498756432998324875236958; 3261)
Ausgabe: 17673259354931922209406696

Eingabe: mod(57632498756432998324875236958; 3261)
Ausgabe: 1302

Potenzmodulo:
Insbesondere in der Kryptographie kann es interessant sein, a^b mod n zu berechnen. Für diese Operation stellt Promathika einen optimierten Algorithmus bereit, der mit dem Befehl potenzmodulo(a;b;n) erreicht werden kann. Beispiel:

Eingabe: potenzmodulo(2;100;11)
Ausgabe: 1

Fakultäten, Binomialkoeffizienten und Zufallszahlen

Promathika beherrscht einige Routinen, die für die Wahrscheinlichkeitsrechnung interessant sind.

Fakultät:
Die Fakultät einer Zahl lässt sich mithilfe des Befehls Fakultaet(Zahl) berechnen. Beispiel:

Eingabe: Fakultaet(10)
Ausgabe: 3628800

Binomialkoeffizient:
Der vor allem für die Wahrscheinlichkeitsrechnung interessante Binomialkoeffizient "N über K" kann mithilfe des Befehls NueberK(N,K) berechnet werden:

Eingabe: NueberK(49;6)
Ausgabe: 13983816

Erzeugung von Zufallszahlen:
Mit dem Befehl Zufallszahl(Grenze) kann Promathika beliebig große Zufallszahlen von 0 bis Grenze erzeugen.

Eingabe: Zufallszahl(463958795861209365013847650238974598)
Ausgabe: 247654660302239497511436413069773122

Die Arithmetik für größe Zahlen ist bereits vollständig in Promathika implementiert.


Zahlenbasis wechseln

Wechsel der Zahlenbasis:
Mithilfe des Befehls BasisWechsel(Quellbasis; Zielbasis; Zahl) ist ein Wechsel der Zahlenbasis der Zahl möglich. Auf diese Weise können Sie beispielsweise eine Zahl vom Dezimalsystem in das Dual- oder Hexadezimalsystem umwandeln. Sie können aber auch eine Dualzahl ins 4er-System oder ins 63er-System umwandeln. Die Basiswechselroutine ist also vielseitig anwendbar.

Eingabe: BasisWechsel(10;2;2010)
Ausgabe: 11111011010

Eingabe: BasisWechsel(10;16;2010)
Ausgabe: 7da

Eingabe: BasisWechsel(5;21;43210)
Ausgabe: |6|13|11|