Die Webseiten der Fachschaft Informatik am ERG Saalfeld
Lösung einer diophantische Gleichung (Steinkohlenaufgabe)
Durch 2 LKW sollen 61 Tonnen Steinkohle abtransportiert werden.
Der erste LKW hat eine Ladefähigkeit von 4 Tonnen und der zweite LKW kann maximal mit 3 Tonnen beladen werden.
Beide LKW sollen möglichst nur voll beladen und mit der gleichen Geschwindigkeit fahren. Eine rein mathematische Lösung ist hier angegeben.
Programm
for anz1 in range(0,20):
for anz2 in range(0,20): # 21*3 ist schon mehr als 61
# es gilt anz1 * 4t + anz2 * 3t = 61t
if anz1 * 4 + anz2 * 3 == 61:
print("4-Tonner", anz1, "\t 3-Tonner", anz2)
Der Aufruf sah bei mir so aus:

Aufgaben
- Bringen Sie das Programm zum Laufen.
- Zeichnen Sie zu diesem Programm ein Struktogramm.
- Ändern Sie das Programm so, dass nur die beiden Anzahlen ausgegeben werden, sodass
- die Gesamtanzahl der Fahrten minimal ist,
- bei gleichzeitigem Einsatz die Gesamtzeit minimal ist,
- der zweite LKW möglichst wenig eingesetzt wird.
- Ändern Sie das Programm zusätzlich so ab, dass die Masse der Steinkohle als Parameter übergeben wird.
- Ändern Sie das Programm zusätzlich so ab, dass auch die Tragfähigkeit der beiden LKW als Parameter übergeben werden.
zurück
© ERG Saalfeld - HD. Kirmse + Dustin Wiese 5.08.2022
|