<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=ARIBAS</id>
	<title>ARIBAS - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=ARIBAS"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=ARIBAS&amp;action=history"/>
	<updated>2026-05-25T07:22:56Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=ARIBAS&amp;diff=1589442&amp;oldid=prev</id>
		<title>imported&gt;08Linus: Typo, Form</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=ARIBAS&amp;diff=1589442&amp;oldid=prev"/>
		<updated>2025-04-23T16:43:12Z</updated>

		<summary type="html">&lt;p&gt;Typo, Form&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;ARIBAS&amp;#039;&amp;#039;&amp;#039; ist ein [[Freie Software|freies]] Computerprogramm für [[Zahlentheorie|zahlentheoretische]] Berechnungen. Es wurde von [[Otto Forster]] unter der [[GNU General Public License]] entwickelt.&lt;br /&gt;
&lt;br /&gt;
== Einordnung ==&lt;br /&gt;
ARIBAS ist ein [[Interpreter]], der eine an [[Pascal (Programmiersprache)|Pascal]] angelehnte [[Syntax]] verwendet. Grundlegend für ARIBAS ist eine [[Langzahlarithmetik]], die es gestattet, exakte Berechnungen auch mit sehr großen, ganzen Zahlen durchzuführen. Darauf aufbauend bietet ARIBAS eine umfangreiche Bibliothek von Funktionen aus dem Bereich der [[Algorithmische Zahlentheorie|algorithmischen Zahlentheorie]] an.&lt;br /&gt;
Forsters Buch &amp;#039;&amp;#039;Algorithmische Zahlentheorie&amp;#039;&amp;#039; baut auf ARIBAS auf und führt den mathematisch interessierten Leser sozusagen nebenbei in das Programm ein.&lt;br /&gt;
&lt;br /&gt;
Da ARIBAS stets mit Zahlen rechnet, handelt es sich nicht um ein [[Computeralgebrasystem]].&lt;br /&gt;
&lt;br /&gt;
== Eine interaktive Beispielsitzung ==&lt;br /&gt;
Zunächst wird die [[Fakultät (Mathematik)|Fakultät]] der Zahl 30 berechnet. Das Ergebnis wird der Variable&amp;amp;nbsp;n zugewiesen. Zur leichteren Lesbarkeit langer Zahlen verwendet ARIBAS bei der Ausgabe einen [[Unterstrich]] nach jeweils fünf Ziffern.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;==&amp;gt; n := factorial(30).&lt;br /&gt;
 -: 265_25285_98121_91058_63630_84800_00000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Obwohl die Zahl n nicht gerade klein ist, besitzt sie lauter kleine [[Primfaktor]]en: genau die Primzahlen kleiner 30 (mit unterschiedlichen Exponenten). Wenn man Eins hinzu addiert, so erhält man eine Zahl, die keinen Teiler kleiner oder gleich 30 besitzen kann. (Z.&amp;amp;nbsp;B. ist 13 ein Teiler von n und von n+13, aber nicht von n+1). Für gewisse Ausgangszahlen (anstelle der Zahl 30 in unserem Beispiel) entstehen auf diese Art sogar große Primzahlen, sogenannte [[Fakultätsprimzahl]]en. Dass es sich im vorliegenden Fall um keine Primzahl handelt, lässt sich mit der ARIBAS Funktion &amp;lt;code&amp;gt;rab_primetest&amp;lt;/code&amp;gt; in einem Sekundenbruchteil nachweisen (vgl. [[Miller-Rabin-Test]]):&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;==&amp;gt; rab_primetest(n+1).&lt;br /&gt;
 -: false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da der Nachfolger von 30, also 31, eine Primzahl und somit der [[Restklassenring]] &amp;lt;math&amp;gt;\Z/31\Z&amp;lt;/math&amp;gt; sogar ein [[Körper (Algebra)|Körper]] ist, zeigt eine nicht allzu komplizierte Überlegung, dass&lt;br /&gt;
:&amp;lt;math&amp;gt; 30! \equiv -1 \mod 31&amp;lt;/math&amp;gt;&lt;br /&gt;
gelten muss. (Beweisidee: Die Faktoren 2, 3, …, 29 heben sich modulo 31 jeweils in geeigneten Paaren zu 1 auf!) Mit anderen Worten, 31 ist ein Teiler von n+1:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;==&amp;gt; (n+1) mod 31.&lt;br /&gt;
 -: 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An diesem Beispiel wird die Bedeutung einer exakten Langzahlarithmetik deutlich: Mit einem Taschenrechner lässt sich zwar 30! ebenfalls berechnen. Aber aufgrund der auf etwa 10 Ziffern begrenzten Genauigkeit lassen sich die Zahlen 30! und 30!+1 nicht voneinander unterscheiden. Der Nachweis, dass 30!+1 durch 31 ohne Rest teilbar ist, lässt sich also mit einem Taschenrechner nicht erbringen.&lt;br /&gt;
&lt;br /&gt;
Kann der Quotient (n+1)/31 noch weiter faktorisiert werden?&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;==&amp;gt; q := (n+1) div 31.&lt;br /&gt;
 -: 8_55654_38649_09388_98826_80154_83871&lt;br /&gt;
 ==&amp;gt; rab_primetest(q).&lt;br /&gt;
 -: false&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch q ist also keine Primzahl. Durch Anwendung der [[Pollard-Rho-Methode]] findet man:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;==&amp;gt; rho_factorize(q).&lt;br /&gt;
 working .&lt;br /&gt;
 factor found after 256 iterations&lt;br /&gt;
 -: 12421&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Durch Wiederholung dieses Prinzips erhält man die vermutliche Primfaktorzerlegung von n+1:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;==&amp;gt;  31 * 12421 * 82561 * 1080941 * 7_71906_83199_27551.&lt;br /&gt;
 -: 265_25285_98121_91058_63630_84800_00001&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die Einschränkung &amp;#039;&amp;#039;vermutlich&amp;#039;&amp;#039; will hierbei sagen, dass es nicht bewiesen ist, dass sämtliche berechneten Faktoren auch wirklich prim sind. &amp;lt;code&amp;gt;rab_primetest(...)&amp;lt;/code&amp;gt; lieferte zwar bei jedem Faktor &amp;#039;&amp;#039;mehrfach&amp;#039;&amp;#039; „true“. Daraus folgt aber nur, dass es sich &amp;#039;&amp;#039;mit einer gewissen (relativ hohen) Wahrscheinlichkeit&amp;#039;&amp;#039; um Primzahlen handelt. Daher spricht man beim [[Miller-Rabin-Test]] auch von einem probabilistischen Primzahltest. Ein Ergebnis „false“ hingegen ist deterministisch: Es handelt sich dann keinesfalls um eine Primzahl.&lt;br /&gt;
&lt;br /&gt;
== Weitere Code-Beispiele ==&lt;br /&gt;
ARIBAS verfügt auch über eine erweiterte Gleitkommaarithmetik, in der rationale Zahlen bis zu 4096 Bit belegen können:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt;==&amp;gt; set_floatprec(4096).&lt;br /&gt;
 -: 4096&lt;br /&gt;
 ==&amp;gt; sqrt(2).&lt;br /&gt;
 -: 1.41421_35623_73095_04880_16887_24209_69807_85696_71875_37694_80731_76679_&lt;br /&gt;
 73799_07324_78462_10703_88503_87534_32764_15727_35013_84623_09122_97024_92483_&lt;br /&gt;
 60558_50737_21264_41214_97099_93583_14132_22665_92750_55927_55799_95050_11527_&lt;br /&gt;
 82060_57147_01095_59971_60597_02745_34596_86201_47285_17418_64088_91986_09552_&lt;br /&gt;
 32923_04843_08714_32145_08397_62603_62799_52514_07989_68725_33965_46331_80882_&lt;br /&gt;
 96406_20615_25835_23950_54745_75028_77599_61729_83557_52203_37531_85701_13543_&lt;br /&gt;
 74603_40849_88471_60386_89997_06990_04815_03054_40277_90316_45424_78230_68492_&lt;br /&gt;
 93691_86215_80578_46311_15966_68713_01301_56185_68987_23723_52885_09264_86124_&lt;br /&gt;
 94977_15421_83342_04285_68606_01468_24720_77143_58548_74155_65706_96776_53720_&lt;br /&gt;
 22648_54470_15858_80162_07584_74922_65722_60020_85584_46652_14583_98893_94437_&lt;br /&gt;
 09265_91800_31138_82464_68157_08263_01005_94858_70400_31864_80342_19489_72782_&lt;br /&gt;
 90641_04507_26368_81313_73985_52561_17322_04024_50912_27700_22694_11275_73627_&lt;br /&gt;
 28049_57381_08967_50401_83698_68368_45072_57993_64729_06076_29969_41380_47565_&lt;br /&gt;
 48237_28997_18032_68024_74420_62926_91248_59052_18100_44598_42150_59112_02494_&lt;br /&gt;
 41341_72853_14781_05803_60337_10773_09182_86931_47101_71111_68391_65817_26889_&lt;br /&gt;
 41975_87165_82152_12822_95184_88472_08969_46338_62891_56288_27659_52635_14054_&lt;br /&gt;
 22676_53239_69461_75112_91602_40871_55101_35150_45538_12875_60052_63146_80171_&lt;br /&gt;
 27402_65396_94702_40300_51749_53188_62925_63138_51881_63478_00156_93691_76881_&lt;br /&gt;
 85237_86840_52287_83762_93892_14300_65586_95686_85964_5952&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ferner kann ARIBAS durch benutzerdefinierte Funktionen erweitert werden, wie hier am Beispiel einer Funktion zur Zerlegung kleiner Zahlen in Primfaktoren gezeigt werden soll:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;code&amp;gt; function trialdiv(x: integer): array;&lt;br /&gt;
  var&lt;br /&gt;
    st: stack;&lt;br /&gt;
    q: integer;&lt;br /&gt;
  begin&lt;br /&gt;
    q := 2;&lt;br /&gt;
    while q := factor16(x,q) do&lt;br /&gt;
        stack_push(st,q);&lt;br /&gt;
        x := x div q;&lt;br /&gt;
    end;&lt;br /&gt;
    stack_push(st,x);&lt;br /&gt;
    return stack2array(st);&lt;br /&gt;
  end;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* Otto Forster: &amp;#039;&amp;#039;Algorithmische Zahlentheorie.&amp;#039;&amp;#039; Vieweg, 1996, ISBN 3-528-06580-X.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.mathematik.uni-muenchen.de/~forster/sw/aribas.html ARIBAS Webseite der Universität München]&lt;br /&gt;
* [https://link.springer.com/content/pdf/bbm%3A978-3-658-06540-9%2F1.pdf Kurz-Anleitung für ARIBAS] (PDF; 148&amp;amp;nbsp;kB) aus dem Buch &amp;#039;&amp;#039;Algorithmische Zahlentheorie&amp;#039;&amp;#039; des Autors.&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Freie Mathematik-Software]]&lt;br /&gt;
[[Kategorie:Computerarithmetik]]&lt;br /&gt;
[[Kategorie:Zahlentheorie]]&lt;br /&gt;
[[Kategorie:Abkürzung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;08Linus</name></author>
	</entry>
</feed>