22.08.2013 Aufrufe

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

Grundlagen der Informatik I “Programmierung”

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

∀a ∈IN. teilt(a,a) ∧ teilt(a,a*b)<br />

Der größte gemeinsame Teiler ist nun eine Funktion ggt, die zwei Argumente aus IN auf eine Zahl aus IN<br />

abbildet und die Eigenschaft hat: ggt(m,n) teilt m und n und jede Zahl t, die m und n teilt, ist kleiner o<strong>der</strong><br />

gleich ggt(m,n).<br />

ggt:IN×IN→IN mit<br />

∀m,n ∈IN. teilt(ggt(m,n),m) ∧ teilt(ggt(m,n),n)<br />

∧ (∀t ∈IN. teilt(t,m) ∧ teilt(t,n) ⇒ t≤ggt(m,n) )<br />

Diese Form <strong>der</strong> Beschreibung des größten gemeinsame Teilers ist nicht konstruktiv, denn sie gibt keinen<br />

Hinweis, wie man für bestimmte Werte von m und n die Lösung berechnet. (Das Ausprobieren für alle t ist<br />

natürlich keine konstruktive Verfahrensweise, da dies nicht in endlich vielen Schritten erfolgen kann.). Die<br />

Schwierigkeit könnten wir beseitigen durch unser Wissen, daß Werte t, die größer als m o<strong>der</strong> n sind, we<strong>der</strong><br />

ein Teiler von m noch von n sein können. Wir können in <strong>der</strong> dritten zweiten For<strong>der</strong>ung den Bereich IN, in<br />

dem wir die Lösung t suchen, zu dem endlichen Bereich {i ∈IN| i≤m ∧ i≤n} reduzieren:<br />

∀t ∈{i ∈N| i≤m ∧ i≤n}. teilt(t,m) ∧ teilt(t,n) ⇒ t≤ggt(m,n)<br />

Der Berechnungsaufwand (Komplexität) ist natürlich bei größeren Werten von m und n trotzdem erheblich,<br />

aber wir stellen fest, daß bei endlichen Wertebereichen die Aufzählung eine maschinelle Auswertung erlaubt,<br />

falls das verwendete Aussage teilt, stets definiert ist und ihre Prüfung beschränkten Zeitaufwand erfor<strong>der</strong>t.<br />

Mit dem Wissen aus <strong>der</strong> Zahlentheorie können wir jedoch einen Schritt weitergehen. Seit Euklid wissen wir,<br />

daß eine Zahl t, die Teiler von m und n ist, auch m-n teilt, falls m größer als n ist, und n-m teilt, falls n größer<br />

als m ist. Falls die Zahlen m und n gleich sind, dann ist jede von ihnen <strong>der</strong> größte gemeinsame Teiler.<br />

teilt(t,m) ∧ teilt(t,n) ⇒ (m>n ⇒ teilt(t,m-n))<br />

teilt(t,m) ∧ teilt(t,n) ⇒ (mn ⇒ ( GGT(m,n,t) ⇔ GGT(m-n,n,t) )<br />

“GGT(m-n,n,t) ist genau dann wahr, wenn GGT(m,n,t) wahr ist, falls m größer als n ist”.<br />

2. m

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!