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

  1. Bringen Sie das Programm zum Laufen.
  2. Zeichnen Sie zu diesem Programm ein Struktogramm.
  3. Ändern Sie das Programm so, dass nur die beiden Anzahlen ausgegeben werden, sodass
    1. die Gesamtanzahl der Fahrten minimal ist,
    2. bei gleichzeitigem Einsatz die Gesamtzeit minimal ist,
    3. der zweite LKW möglichst wenig eingesetzt wird.
  4. Ändern Sie das Programm zusätzlich so ab, dass die Masse der Steinkohle als Parameter übergeben wird.
  5. Ä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