FAQ-Seite
Prof. Dr. J. Ziegenbalg
Bemerkungen:
1. Im folgenden sind (stichwortartig) einige Antworten gegeben - (vorwiegend) zu Fragen im Rahmen der Veranstaltungen "Informatik I" und "Informatik II" bzw. im Zusammenhang mit dem Buch
AHG J. Ziegenbalg: Algorithmen von Hammurapi bis Gödel Spektrum Akademischer Verlag, Heidelberg 1996 2., verbesserte Auflage Verlag Harri Deutsch, Frankfurt am Main, Oktober 2007
2. Einige Themen aus AHG (so z.B. das Heron-Verfahren, seine Verallgemeinerung auf das Problem der k-ten Wurzel und sein Stellenwert im Zusammenhang mit dem Newton-Verfahren) sind auch in Notebook-Form auf meiner homepage (www.ph-karlsruhe.de/wp/ziegenbalg/) zu finden. Diese Darstellungen sind in der Regel erheblich ausführlicher als die kompaktere Darstellung in AHG.
3. Die zahlentheoretischen Fragestellungen aus AHG sind in der Regel in dem Buch
EZTH J. Ziegenbalg: Elementare Zahlentheorie - Beispiele, Geschichte, Algorithmen Verlag Harri Deutsch, Frankfurt am Main 2002
in größerem Detail dargestellt. Dort finden sich oft auch explizite Ausführungen zu Themen und Fragestellungen, die in AHG gelegentlich nur in der Form einer Bemerkung oder einer Aufgabe "angerissen" sind. Insbesondere findet sich dort auch (für Übungszwecke) ein formaler Beweis des Satzes von der Division mit Rest auf der Basis der vollständigen Induktion. Auch die "Vielfachsummendarstellung" im Zusammenhang mit dem Euklidischen Algorithmus wird dort erheblich ausführlicher behandelt als in AHG.
4. Die Seite befindet sich im Aufbau. Für Bemerkungen und Anregungen bin ich dankbar.
J. Ziegenbalg
FAQ 1:
Sehr geehrter Herr Ziegenbalg,
FAQ 1a:
... können sie mir dabei weiterhelfen wie man beim Turm von Hanoi Problem ein Programm in Form einer Funktion, das die Anzahl der Züge auf Basis
der Standart Strategie ermittelt, formuliert?
Antwort:
Im folgenden sind drei Varianten (in der Syntax des Computeralgebra Systems "Mathematica")
zur Lösung des Problems gegeben. Unmittelbar "einschlägig" für Ihre
Frage ist die Version Anzahl2 (aber alle drei Versionen liefern dasselbe
Ergebnis):
Anzahl1[n_]:=Length[Hanoi[n, A, B, C]]
(* Funktion "Hanoi" wie in AHG, S. 126 *)
Anzahl2[n_]:=
If[n==1,1, Anzahl2[n-1] + 1 + Anzahl2[n-1]]
Anzahl3[n_]:= 2^n -1
FAQ 1b:
... Und wie man die Formel (2 hoch n) - 1 beweist?
Mit vollständiger Induktion nach der Anzahl (n) der Scheiben:
(Im folgenden: A(n) = Anzahl der Züge bei n Scheiben.)
Induktionsverankerung:
n=1: Ein Zug von A nach C; fertig. Anzahl der Züge = A(1) = 1 = 2^1 - 1.
Die Induktionsverankerung ist somit erbracht.
Induktionsschritt:
Zu zeigen ist:
Aus (der Induktionsannahme)
"Die Aussage ist richtig für k-1 Scheiben"
folgt
"Die Aussage ist richtig für k Scheiben".
Beweis des Induktionsschritts:
Gegeben sei ein Turm mit k Scheiben. Zu zeigen ist (unter Heranziehung der
Induktionsannahme): A(k) = 2^k - 1.
Nach der Standardstrategie (Modell der "Mönche", vgl. AHG S. 125) folgt:
A(k) = A(k-1) + 1 + A(k-1)
= 2 * A(k-1) + 1
= (nach Induktionsannahme) 2 * (2^(k-1) - 1) + 1
= (nach elementarer Umformung) 2^k - 2 + 1
= 2^k - 1
q.e.d.
FAQ 2:
... Wie beweist man die Aufgabe AHG, Seite 113 (unten) ?
Antwort:
Z.B.
mit vollständiger Induktion nach der Anzahl k der Kanten.
Hinweis: Es empfiehlt sich, sich eine Skizze von der Situation zu machen.
Induktionsverankerung:
k=1: Der Baum besteht aus einer Kante und den beiden anliegenden Ecken.
[Alternativ: Induktionsverankerung beim "trivialen" Baum, also bei dem Baum der aus nur einer Ecke besteht: Kantenzahl = 0 = Eckenzahl - 1 ]
In jedem dieser beiden Fälle gilt also: Kantenzahl = Eckenzahl - 1
Induktionsschritt:
Gegeben sei ein Baum B mit k Kanten und e Ecken (k > 1).
Zu zeigen: k = e - 1
Hilfssatz (Übung): Entfernt man aus einem Baum eine beliebige Kante
(unter Beibehaltung aller Ecken), dann erhält man zwei nicht
zusammenhängende Bäume. (Dabei kann es vorkommen, dass einer
dieser Bäume der triviale Baum ist. Frage: Wann passiert das?)
Wir entfernen vom Baum B eine Kante und erhalten so die ("kleineren") nicht zusammenhängenden Bäume B1 und B2 mit den Kantenzahlen k1 und k2 und den Eckenzahlen e1 und e2.
Nach Konstruktion gilt: k = k1 + k2 + 1 und e = e1 + e2.
Aus der Induktionsannahme (und k1, k2 < k) folgt für die kleineren Bäume B1 und B2:
k1 = e1 - 1
k2 = e2 - 1
Daraus folgt:
k = k1 + k2 + 1 = (e1 - 1) + (e2 - 1) + 1 = (e1 + e2) - 2 + 1
= e - 1
q.e.d.
FAQ 3:
Wie beweist man den Hilfssatz in FAQ 2 ?
Antwort: (Hinweis: Es empfiehlt sich, sich eine Skizze von der Situation zu machen.)
Beweis: Wir entfernen aus dem Baum B eine beliebige Kante K; das Ergebnis bezeichnen wir mit B'.
Dass B' ein kreisfreier Graph ist (d.h. dass B' aus Bäumen besteht), ist klar, denn sonst enthielte B' einen Kreis; aber dies wäre auch ein Kreis im ursprünglichen Graphen B, was im Widerspruch zur Voraussetzung stünde, dass B ein Baum ist.
Es bleibt zu zeigen, dass B' ein nicht zusammenhängender Graph ist. Nehmen wir an, dass der Graph B' zusammenhängend sei. Die entfernte Kante K habe die beiden Eckpunkte P und Q. Wäre B' zusammenhängend, so gäbe es in B' einen Kantenweg W von P nach Q. Fügten wir dann zu B' wieder die Kante K hinzu (und erhielten somit den Ausgangsbaum B), dann gäbe es somit in B zwei Kantenwege von P nach Q: Zum einen den Kantenweg W und zum anderen den Kantenweg, der nur aus der Kante K besteht. Hängte man nun die Kante K an den Kantenweg W an, so erhielte man einen Kreis in B - im Widerspruch zur Voraussetzung, dass B ein Baum ist.
Zusammenfassung: B' ist somit ein kreisfreier, nicht zusammenhängender Graph, also eine Kollektion von Bäumen, die offensichtlich "kleiner" sind als der Baum B (denn es sind ja Teilbäume von B).
FAQ 4:
Sehr geehrter Herr Ziegenbalg,
wie beweist man den Satz von der Division mit Rest mit Hilfe von vollständiger Induktion?
Vgl. z.B. EZTH: J. Ziegenbalg, Elementare Zahlentheorie, Verlag Harri Deutsch, Frankfurt am Main 2002, Seite 24 ff
FAQ 5:
FAQ 5 a:
Sehr geehrter Herr Ziegenbalg,
... Frage ...
Zum Beispiel durch welche Programmier-Paradigmen das Prinzip der Modularität besonders gut unterstützt wird
(Ist die Antwort hierauf "imperatives Programmieren?").
Die Antwort auf die konkrete Frage lautet: Das funktionale Programmieren unterstützt die Modularität in besonderem Maße. Bei richtiger Anwendung
kann man dabei ohne Nebenwirkungen und
Seiteneffekte auskommen, die unter dem Aspekt der Modularität eher unerwünscht
sind. Vgl. auch AHG 8.6, besonders Seite 275, sowie AHG 8.3, Seite
253.
Diese Dinge werden in der Regel in der Form kurzer
Bemerkungen und Hinweise auch bereits an geeigneten Stellen in der Vorlesung
"Informatik I" behandelt.
Zusatzbemerkung zu FAQ 5a:
Gelegentlich werden verwechselt:
* die Frage nach den Formen des Programmierens
(vgl. AHG Kap. 2, insbesondere Seite 18)
* die Frage nach den Paradigmen des Programmierens
(vgl. AHG Kap. 8, 8.3, insbesondere Seite 251 ff)
Beide Themen werden in geeignetem Zusammenhang in der Regel bereits in der
Veranstaltung "Informatik I" angesprochen.
FAQ 5 b:
Auch zu der Frage nach der Sitzverteilung nach Verhältniswahlen und
den zwei unterschiedlichen Auszählungsverfahren kann man keine Lösung in
Ihrem Buch finden.
Antwort:
Die Frage soll insbesondere die Beziehungshaltigkeit
bzw. den fächerübergreifenden Charakter (die
Interdisziplinarität) der Algorithmik / Informatik verdeutlichen. Diese
Dinge werden in der Regel (in kompakter Form) im Zusammenhang mit dem
Thema "Algorithmen und Beziehungshaltigkeit" (AHG Kap. 1, besonders
Seite 18) in der Vorlesung "Informatik I" angesprochen.
Die diesbezügliche Aufgabe lautete
damals:
Beschreiben Sie kurz das Grundproblem der
Sitzverteilung nach Verhältniswahlen. Nennen
Sie zwei unterschiedliche Auszählungs-Verfahren zur Ermittlung von Sitzen nach
Verhältniswahlen. (Es sind nur die
jeweiligen Namen zu nennen).
Als konkrete Antwort auf die gestellte Frage wurde
damals erwartet:
1. Es ist in der Regel unmöglich, die sich aus den Wahlen ergebenden
Prozentzahlen für die Parteien durch ein rein proportionales Verfahren in Sitze
umzusetzen, denn die Anzahl der Sitze muss stets eine natürliche Zahl
sein.
2a. das Verfahren von d'Hondt
2b. das Verfahren von Hare-Niemeyer
Weitere Informationen zum Thema Sitzverteilung in Parlamenten
FAQ 5 c:
Eine andere Frage ist, ob es auch Punktabzug gibt, wenn man bei
der Formulierung von Programmen in einer höheren Programmiersprache Komma- oder Klammerfehler macht oder ob es
reicht, wenn man das Prinzip verstanden hat aber Kleinigkeiten falsch sind?
Antwort:
Rein syntaktische Fehler, wie Komma-Fehler u.ä. werden
in der schriftlichen Prüfung in der Regel nur mit minimalem Gewicht
(meistens: fast gar nicht) "in
Rechnung" gestellt. Bei der Bewertung, was "Kleinigkeiten" sind, können sich aber die
Auffassungen unterscheiden.
FAQ 6:
Sehr geehrter Herr Ziegenbalg,
bei der Durchsicht der vorherigen Prüfungsaufgaben für das erste Staatsexamen sind wir auf Fragen
gestoßen, ...
Die Fragen lauten:
FAQ
6a:
Schreiben Sie ein Programm (in der Form einer Funktion), das die Anzahl der Züge auf der Basis der Standardstrategie ermittelt.
Siehe FAQ 1.
FAQ
6b:
Geben Sie (mit kurzer Begründung) an, durch welche Programmier-Konstrukte das Prinzip der Modularität besonders gut unterstützt wird.
Siehe: FAQ 5/5a.
FAQ
6c:
Beschreiben Sie den Begriff der statischen und dynamischen Endlichkeit von Programmen.
Vgl. AHG 2.1, insbesondere Seiten 24 / 25.
FAQ
7:
Sehr geehrter Herr Ziegenbalg,
ich habe ein paar fachliche Fragen zur Vorlesung Informatik I bei denen ich mir unsicher bin.
FAQ
7a:
Wie beschreibe ich bei dem Heron-Verfahren diejenige Situation, bei der der Algorithmus mit der Ermittlung des exakten Werts abbricht?
Dies sollten Sie selbst herausfinden, indem Sie den Algorithmus "von Hand" nachspielen. Es ist wirklich ganz einfach. Wenn es Ihnen trotzdem nicht klar wird, dann melden Sie sich bitte noch mal bei mir per email.
FAQ
7b:
Welche heuristische Grundidee steckt hinter dem Heron-Verfahren?
Man nähere das gesuchte Quadrat durch flächengleiche Rechtecke an, deren Seitenlängen sich der Seitenlänge des Quadrats annähern (vgl. AHG, Seite 54 ff).
FAQ
7c:
Sechs Aspekte, in welcher Weise Algorithmen in der Kunst eine Rolle spielen?
*
Der Algorithmus als Thema (Motiv)
von Kunstobjekten (z.B. Gregor Reish "Margarita Philosophica")
Spezialthema:
die Faszination des Unmöglichen (z.B. Escher)
(kein Computer
notwendig !)
Siehe auch: J.
Ziegenbalg: Algorithmik als Schnittstelle zwischen Kunst und
Mathematik; in unSICHTBARes. Kunst_Wissenschaft, Schriftenreihe des Zentrums
für Kunst und Medien (ZKM), Hrsg. B. Könches
und P. Weibel, Seite 174-198, Benteli Verlag, Bern 2005
FAQ 8:
Wie beweist man die folgende Aussage:
Zwei Strecken sind genau dann kommensurabel, wenn ihr Verhältnis eine rationale Zahl ist. (KOM)
Definition: Kommensurabel zu sein heißt, mit einem gemeinsamen Maß messbar zu sein. Die Strecken s und t sind also kommensurable, wenn es eine Strecke (ein gemeinsames Mass) g gibt, die sowohl s als auch t misst ("ganzzahlig teilt"), d.h. wenn es eine Strecke g und natürliche Zahlen k und m gibt mit der Eigenschaft: s = k*g und t = m*g. Da es in diesem Zusammenhang also nur auf die Streckenlängen ankommt, wird bei der folgenden Argumentation kein Unterschied zwischen Strecken und Streckenlängen gemacht. Und weiterhin wird der Größenbereich der Streckenlängen mit dem der reellen Zahlen identifiziert.
Beweis von (KOM):
(i) Die Strecken s und t seien kommensurabel. Dann gilt also (wie oben) s = k*g und t = m*g für geeignete g, k, m. Also gilt für das Verhältnis von s und t: s/t = (k*g)/(m*g) = k/m ist eine rationale Zahl.
(ii) Umkehrung: Sei nun also s/t eine rationale Zahl, also s/t = n/r für geeignete natürliche Zahlen n und r. Man definiere die Strecke g durch: g=s/n. Also ist s=g*n und die Strecke g misst die Strecke s.
Behauptung: g ist ein gemeinsames Maß von s und t.
Beweis der Behauptung:
(a) g misst s. Dies ist offensichtlich, denn g ist ja so konstruiert.
(b) g misst t. Denn nach Voraussetzung im Umkehrungsfall
(s.o.) gilt s/t = n/r, also t = s*(r/n) = g*n*(r/n) = g*r
für
die
natürliche Zahl r. D.h. g misst t.
FAQ 9:
Sehr geehrter Herr Ziegenbalg,
...
FAQ 9a:
Welche Realisierungsmöglichkeiten im Zusammenhang mit realer Computer-Software gibt es für das operative Prinzip?
Das operative Prinzip zu praktizieren heisst (vgl. E. Wittmann: Grundfragen des Mathematikunterrichts, Vieweg Verlag) im Sinne der Frage "was passiert, wenn ..." vorzugehen.
Jede Computernutzung, welche diese Arbeitsweise unterstützt, basiert damit (explizit oder implizit) auf dem operativen Prinzip. Dies sollte im Prinzip bei jeder gut geschriebenen Software der Fall sein.
Besonders günstig im Hinblick auf die Förderung operativer Arbeitsweisen sind:
* Jede (interaktive) Software, die zum Experimentieren und zur Exploration einlädt; insbesondere auch Simulations-Software. Die Realisierung dieser Zielstellungen (Experimentieren, Explorieren) ist bei selbstgeschriebenen Programmen (z.B. auch im Rahmen des Einsatzes von Computeralgebra Systemen) in besonders flexibler und zielgerichteter Weise möglich.
* Elektronische Tabellenkalkulations-Systeme (Englisch: electronic spread sheets; sie werden im Englischen oft auch als "what-if-software" bezeichnet): Dies sind hochgradig interaktiv und visuell angelegte Systeme zur Realisierung unterschiedlichster Kalkulationen im Bereiche des "bürgerlichen Rechnens" - einschliesslich der graphischen Umsetzung der Ergebnisse in einer Fülle von Diagramm-Formen (business graphic).
* Programme aus dem Bereiche der Dynamischen Geometrie: Diese Programme ermöglichen die üblichen Konstruktionen aus dem Bereiche der (synthetischen) Elementargeometrie. Für hochgradige Interaktivität und somit zur Realisierung des operativen Prinzips ist der üblicherweise vorhandene "Zug"-Modus (durch den sich die Lage von Basis-Punkten beliebig verändern lässt) hervorragend geeignet.
Weitere Literatur zum Thema "Computernutzung und operatives Prinzip":
http://www.ph-karlsruhe.de/wp/ziegenbalg/materialien-homepage-jzbg/Manuskripte/AlgFundSig.pdf
FAQ 9b:
Was ist eine geeignete Veranschaulichung des Euklidischen Algorithmus, die über die der Division mit Rest hinausgeht?
Siehe z.B.: AHG, Seite 66
FAQ 9c:
Wie ist das Verfahren der ägyptischen Multiplikation unter Effizienzgesichtspunkten einzuschätzen?
Es unterliegt dem heuristischen Prinzip "Teile und Herrsche" und ist damit vergleichsweise effizient (vgl. AHG, Abschnitt 5.3, Seite 176 ff). Die Effizienzverbesserung im Vergleich zum Standardverfahren der Multiplikation (durch iterierte Addition) ist vergleichbar mit der des "schnellen Potenzierens" im Vergleich zum "Potenzieren nach dem Standardverfahren" (durch iterierte Multiplikation); vgl. AHG, Abschnitt 5.3. Das Ganze spielt sich nur eine arithmetische Stufe "tiefer" ab:
| Standardverfahren: | Multiplikation durch iterierte Addition | Potenzierung durch iterierte Multiplikation |
| Verfahren auf der Basis von "Teile und Herrsche": |
ägyptische Multiplikation (vgl. AHG, Seite 181) (bzw. russische Bauernmultiplikation) |
schnelles Potenzieren (vgl. AHG, Seite 179) |
Das Prinzip von "Teile und Herrsche" ist aus der Perspektive von Effizienzbetrachtungen besonders günstig, weil durch dieses Prinzip (im Falle einer fortgesetzten Halbierung der "kritischen Masse") in der Regel die Funktion "Zweierlogarithmus der kritischen Masse M" günstig ins Spiel kommt. Man veranschauliche dies durch die Skizze des Funktionsgraphen des Zweierlogarithmus.
FAQ 9d:
Welches Beispiel eignet sich, um zu zeigen, dass ... die gierige Strategie nicht immer eine optimale Lösung liefert?
Z.B. Arbeitsplanung (job scheduling), siehe AHG, Seite 111.
FAQ 10:
Sehr
geehrter Herr Ziegenbalg,
bei der Vorbereitung auf das Examen sind wir noch auf folgende Frage gestoßen:
Was wäre ein jeweils konkretes Beispiel für einen nicht-numerischen Algorithmus
aus den Bereichen Primar- und Sekundarstufe?
Primarstufe - Beispiele:
* Generierung regelmässiger Muster (z.B. figurierte Zahlen)
vgl. http://www.ph-karlsruhe.de/wp/ziegenbalg/materialien-homepage-jzbg/materials-in-english/FigurateNumbers.pdf
* erste (oft iterative bzw. rekursive) (oft geometrische)
Kostruktionsverfahren
(z.B. Polyominos)
* einfache Spiele rekursiven Charakters (z.B. NIM oder Mini-NIM)
* erste stochastische Grunderfahrungen (z.B. Sortieren, Klassifizieren,
Ordnen von einfach struktrierten Daten oder Objekten)
Sekundarstufe I - Beispiele:
* geometrische Konstruktionen / Konstruktionstexte
* Spezialbeispiel: Wurzelschnecke von Theodorus
vgl. http://de.wikipedia.org/wiki
* Iteration / Verkettung geometrischer Abbildungen (z.B. Spiegelungen)
* Wahlverfahren / Sitzverteilung nach Wahlen (D'Hondt, Hare-Niemeyer)
vgl. http://www.ph-karlsruhe.de/wp/ziegenbalg/materialien-homepage-jzbg/Aktuelles-Aushaenge/Sitzverteilung-Stellfeldt.pdf
* Gleichungslehre: systematisches Umstellen von Gleichungen
(z.B. zum Zwecke des Lösens)
sowie: Vertiefte Behandlung von Primarstufenthemen; z.B.:
* einfache Strategiespiele (z.B. NIM, TIC-TAC-TOE, ...)
* stochastische Grunderfahrungen (z.B. Sortieren, Klassifizieren, Ordnen)
Falls Ihnen das eine oder andere Stichwort nichts sagen sollte:
--> z.B. http://mathworld.wolfram.com/
--> z.B. Wikipedia
--> meine homepage, besonders das Manuskript "Algorithmen - fundamental für die
Allgemeinbildung"
vgl. http://www.ph-karlsruhe.de/wp
sowie das eine oder andere Mathematica Notebook (auch
auf meiner "englischen" Seite).