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 !)

* Algorithmische Produkte als Kunstwerke  „ex post“ (z.B. babylonische Keilschriften, Platinen-Layout, u.v.m.)
* Der Algorithmus selbst als Kunstobjekt 
          Eleganz der Formulierung, bis hin zur "minimal art", besonders im Zusammenhang mit Rekursion 
* Algorithmen als Werkzeuge zur Herstellung von Kunstobjekten (oft in Verbindung mit dem Computer):  
          algorithmisch erzeugte Kunst, "Computer"-Kunst; vgl. F. Nake   
* Algorithmik als Prinzip des Designs
          Diskretisierung, Digitalisierung, Randomisierung, Seriierung;
          z.B. serielle Kunst, Aleatorik (kein Computer notwendig !)
* Die algorithmische Methode in Kunst und Mathematik
          Prozessorientierung, Konstruktivismus / Konstruktivität, Elementarität, Paradigmatik 
Programmieren als Kunst:  Zu den berühmtesten Informatik-Büchern im 20. Jahrhundert zählt  
          Donald Knuths mehrbändiges Werk "The Art of Computer Programming"; Addison-Wesley    
* Der Informatiker (bzw. Algorithmiker) als Künstler (z.B. Konrad Zuse)  

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  

P.S.:  Ich habe das Thema "Algorithmen und Kunst" vor Jahren einmal vergleichsweise ausführlich in der Vorlesung "Informatik I" unter dem Stichwort "Beziehungshaltigkeit" (vgl. AHG, Seite 17)  behandelt.  Wenn das Thema nicht so ausführlich behandelt wird, wird in der Regel auch nicht in der Klausur danach gefragt.   

 


 

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/Zum-operativen-Prinzip.pdf 

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 /Wurzelschnecke
  * 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 /ziegenbalg/materialien -homepage-jzbg/Manuskripte /AlgFundSig.pdf
     sowie das eine oder andere Mathematica Notebook (auch auf meiner "englischen" Seite).