summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2014-11-21 19:33:43 +0100
committerschneefux <schneefux+commit@schneefux.xyz>2014-11-21 19:33:43 +0100
commita229d37264973c2d6c284f1f234f33cbe63ebd15 (patch)
treea4a4883efee6ae4fc2c64eba8b34285b48f73ad9
parent922d054ecad133171d1c37c60684be6563e3562b (diff)
downloadbwinf-33-a229d37264973c2d6c284f1f234f33cbe63ebd15.tar.gz
bwinf-33-a229d37264973c2d6c284f1f234f33cbe63ebd15.zip
Beispiele für Fähre füllen ergänzt
-rw-r--r--faehre_fuellen.md36
-rwxr-xr-xfaehre_fuellen.py20
2 files changed, 42 insertions, 14 deletions
diff --git a/faehre_fuellen.md b/faehre_fuellen.md
index 8cec7b9..125d5cd 100644
--- a/faehre_fuellen.md
+++ b/faehre_fuellen.md
@@ -22,12 +22,11 @@ Die Fahrzeuge werden möglichst gleichmäßig auf die drei Spalten verteilt. Die
```
werden für A) 8 Fahrzeuge eingeordnet und für B) 9.
-TODO FIXME BEISPIELE ANWENDEN
-
Beispiele
---------
```
+>>> # Optimales Beispiel für A
>>> import faehre_fuellen
>>> faehre_fuellen.strategie_a([15, 15, 15, 15, 15, 6, 6, 6])
6 wurde eingeordnet in die Reihe 0
@@ -37,12 +36,41 @@ Beispiele
15 wurde eingeordnet in die Reihe 2
Das Fahrzeug 15 hat nicht mehr gepasst
{'anzahl': [3, 1, 1], 'länge': [18, 15, 15]}
->>>
->>>
>>> faehre_fuellen.strategie_b([15, 15, 15, 15, 15, 6, 6, 6])
6 wurde eingeordnet in Reihe 0
6 wurde eingeordnet in Reihe 1
6 wurde eingeordnet in Reihe 2
Das Fahrzeug 15 hat nicht mehr gepasst
{'anzahl': [1, 1, 1], 'länge': [6, 6, 6]}
+>>>
+>>> # Optimales Beispiel für B
+>>> faehre_fuellen.strategie_a([5, 5, 5, 5, 5, 5, 5, 8, 8, 8])
+...
+Das Fahrzeug 5 hat nicht mehr gepasst
+{'anzahl': [2, 3, 3], 'länge': [16, 18, 15]}
+>>> faehre_fuellen.strategie_b([5, 5, 5, 5, 5, 5, 5, 8, 8, 8])
+...
+Das Fahrzeug 5 hat nicht mehr gepasst
+{'anzahl': [3, 3, 3], 'länge': [18, 18, 18]}
+>>>
+>>>
+>>> # Gegebene Beispiele befinden sich in einer Liste `Beispiel`
+>>> # (Die Ausgabe ist hier auf das Ergebnis beschränkt)
+>>> faehre_fuellen.strategie_a(faehre_fuellen.Beispiel[0])
+{'anzahl': [3, 3, 1], 'länge': [18.47, 16.09, 9.12]}
+>>> faehre_fuellen.strategie_b(faehre_fuellen.Beispiel[0])
+{'anzahl': [2, 3, 2], 'länge': [15.989999999999998, 19.2, 8.49]}
+>>> # Beispiel 1: weder A) noch B) ist effizienter (jeweils 7 Fahrzeuge)
+>>>
+>>> faehre_fuellen.strategie_a(faehre_fuellen.Beispiel[1])
+{'anzahl': [2, 3, 3], 'länge': [19.92, 16.48, 11.69]}
+>>> faehre_fuellen.strategie_b(faehre_fuellen.Beispiel[1])
+{'anzahl': [2, 3, 3], 'länge': [18.69, 18.04, 11.36]}
+>>> # Beispiel 2: weder A) noch B) ist effizienter (jeweils 8 Fahrzeuge)
+>>>
+>>> faehre_fuellen.strategie_a(faehre_fuellen.Beispiel[2])
+{'anzahl': [5, 4, 3], 'länge': [18.91, 17.630000000000003, 12.780000000000001]}
+>>> faehre_fuellen.strategie_b(faehre_fuellen.Beispiel[2])
+{'anzahl': [4, 4, 4], 'länge': [15.030000000000001, 16.86, 17.43]}
+>>> # Beispiel 3: weder A) noch B) ist effizienter (jeweils 12 Fahrzeuge)
```
diff --git a/faehre_fuellen.py b/faehre_fuellen.py
index d71d374..ae17427 100755
--- a/faehre_fuellen.py
+++ b/faehre_fuellen.py
@@ -1,15 +1,14 @@
#!/usr/bin/env python3
-# Beispiel hier einfügen
-#Beispiel =
-#"5,23; 4,41; 3,33; 13,13; 9,12; 4,38; 6,34; 5,37; 4,11; 3,74; 10,62"
-#"4,14; 3,63; 3,92; 7,95; 5,23; 3,30; 4,86; 15,06"
-#"6,96; 5,06; 3,77; 3,95; 3,91; 3,54; 4,26; 4,03; 5,43; 4,04; 4,43; 4,12; 2,78"
+Beispiel = []
+Beispiel.append("5,23; 4,41; 3,33; 13,13; 9,12; 4,38; 6,34; 5,37; 4,11; 3,74; 10,62")
+Beispiel.append("4,14; 3,63; 3,92; 7,95; 5,23; 3,30; 4,86; 15,06")
+Beispiel.append("6,96; 5,06; 3,77; 3,95; 3,91; 3,54; 4,26; 4,03; 5,43; 4,04; 4,43; 4,12; 2,78")
# das Beispiel wird geparst
-#Beispiel = [float(j.replace(",", ".")) for j in Beispiel.split("; ")]
-Beispiel = [6] * 9 + [1] * 6
+for j in range(len(Beispiel)):
+ Beispiel[j] = [float(k.replace(",", ".")) for k in Beispiel[j].split("; ")]
# vorgegebene Konstanten in Meter umgerechnet
Faehrenlaenge = 20
@@ -18,8 +17,8 @@ Abstand = 0.3
# `abfolge`: Eine Liste mit Längen von Autos
# gibt ein dict zurück, welches "anzahl" und "länge" aller Autos enthält
-# im Verlauf der Funktion wird `abfolge` um die verladenen Fahrzeuge geleert
-def strategie_a(abfolge):
+def strategie_a(Abfolge):
+ abfolge = Abfolge[:]
# `faehre` hält die Anzahl an Fahrzeugen und deren Gesamtlänge in einem dict
faehre = {"anzahl": [0] * Faehrenbreite, "länge": [0] * Faehrenbreite}
@@ -48,7 +47,8 @@ def strategie_a(abfolge):
return faehre
# siehe `strategie_a`
-def strategie_b(abfolge):
+def strategie_b(Abfolge):
+ abfolge = Abfolge[:]
faehre = {"anzahl": [0] * Faehrenbreite, "länge": [0] * Faehrenbreite}
j = 0