Aufgabe 1
-
Gegeben ist eine gerundete rationale Zahl n.
-
Gesucht ist ein Bruch mit möglichst kleinem Zähler und Nenner, dessen Wert möglichst nah an n liegt.
Beispiel
n = 1,857143
1.Versuch
1857143/1000000
=> Zu großer Zähler und Nenner
2. Versuch
13/7
= 1,8571428571428571428571428571429
=> Möglichst kleiner Zähler und Nenner und nah n
Herangehensweise
Gesucht ist ein Näherungsverfahren.
Durch Recherche wurde folgendes Prinzip erarbeitet:
1. Zunächst wird der Bruch
erstellt. Dabei wird x so gewählt,
2. Aus dem daraus entstehenden Bruch wird nun ein Kettenbruch generiert (euklidischer Algorithmus).
3. Aus dem Kettenbruch lassen sich Näherungsbrüche generieren.
4. Welcher Näherungsbruch wird gewählt?
Beispiel
n = 1.414214
1. Bruch natürlicher Zahlen:
1414214 /1000000
2. Kettenbruch:
Beispiel
1. Annäherung:
= 3/2 = 1,5
2. Annäherung
= 7/5 = 1,4
...
Beispiel
9. Annäherung
= 1970 / 1393 = 1.4142139267767408470...
=> Die 9. Annäherung ist die erste Annäherung, bei der alle Nachkommastellen gerundet mit denen von n übereinstimmen.
Somit ist die 9. Annäherung die erste akzeptable.
Die erste akzeptable Annäherung sollte gewählt werden, da so Zähler und Nenner bei ausreichender Präzision möglichst klein bleiben.
Aufgabe 3:Vortänzer
Ein Roboter tanzt vor, ein zweiter soll den "Tanz" imitieren
Für das Imitat gibt es Strafpunkte:
I. Für jedes Zeichen des Programmes 3 Punkte
II. Für jede Längeneinheit Abstand pro Sekunde einen Punkt
Aufgabe:
Imitate mit passenden Strafpunkten finden
Programm zur Berechnung der Strafpunkte schreiben
Programmiersprache der Roboter
"F" - Vorwärts
"B" - Rückwärts
"l" - 45° links drehen
"r" - 45° rechts drehen
"-" - nichts machen
"nBefehlsfolge." Führt Befehlsfolge n mal aus
FFrFrrB--3B.
4F. = FFFF
OriginalProgramme
Tanzprogramm
Strafpunktgrenze
4FFFFrr.
21
FrrFllFrrFrrrFF
20
lFrrFFllFFFrrFllFrrFF
50
Programm 1
4FFFFrr.
FFFF zu 4F. machen
44F.rr.
7 Zeichen * 3 Strafpunkte/Zeichen
= 21 Strafpunkte
Programm 2
Beim Testen des Berechnungsalgorithmus kam heraus:
F
ist die Lösung des Problems
Strafpunkte: 19P
Programm 3
Da der Roboter eigentlich bloß im Zick-Zack gerade ausfährt:
führt zu insgesamt
44 Strafpunkten
BerechnungsProgramm
I. Schleifen aus dem Code entfernen
II. Sowohl Original und Imitat parallel simulieren
III. Nach jedem Schritt Strafpunkte berechnen
IV. Strafpunkte durch Programmlänge dazurechnen