summaryrefslogtreecommitdiff
path: root/doc/faehre_fuellen.md
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2014-11-23 12:18:04 +0100
committerschneefux <schneefux+commit@schneefux.xyz>2014-11-23 12:18:04 +0100
commit5d3189d7345dd3b26a5753a16020ed4f7df0c4b1 (patch)
tree8b260aa3116d6a2cdf58950e332726a3678754d3 /doc/faehre_fuellen.md
parentc8aa48924b284512075432b042ca15c31394ed14 (diff)
downloadbwinf-33-5d3189d7345dd3b26a5753a16020ed4f7df0c4b1.tar.gz
bwinf-33-5d3189d7345dd3b26a5753a16020ed4f7df0c4b1.zip
Verschieben aller Dateien in Unterordner
Diffstat (limited to 'doc/faehre_fuellen.md')
-rw-r--r--doc/faehre_fuellen.md76
1 files changed, 76 insertions, 0 deletions
diff --git a/doc/faehre_fuellen.md b/doc/faehre_fuellen.md
new file mode 100644
index 0000000..125d5cd
--- /dev/null
+++ b/doc/faehre_fuellen.md
@@ -0,0 +1,76 @@
+Fähre füllen
+============
+
+Die Lösung zu Fähre füllen beinhaltet wie gefordert zwei Strategien `strategie_a`, `strategie_b`.
+Beide Funktionen nehmen eine Liste mit Autolängen als Eingabe und geben ein `dict` mit der Länge und Anzahl aller Autos zurück. Mit `print` wird angegeben, wo die Autos einsortiert werden.
+
+Strategie A
+-----------
+
+Die Fahrzeuge werden möglichst weit links angeordnet. Am effizienten ist das bei einer Folge wie beispielsweise
+```
+6, 6, 6, 15, 15, 15, ...
+```
+da hierbei die meiste Anzahl an Fahrzeugen hineinpasst, verglichen mit B.
+
+Strategie B
+-----------
+
+Die Fahrzeuge werden möglichst gleichmäßig auf die drei Spalten verteilt. Die Folge vom Beispiel in A) würde dazu führen, dass nur 3 Fahrzeuge (`6, 6, 6`) Platz hätten. In dem Beispiel
+```
+8, 8, 8, 5, 5, 5, 5, 5, 5, ...
+```
+werden für A) 8 Fahrzeuge eingeordnet und für B) 9.
+
+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
+6 wurde eingeordnet in die Reihe 0
+6 wurde eingeordnet in die Reihe 0
+15 wurde eingeordnet in die Reihe 1
+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)
+```