ich habe folgendes Problem:
ich möchte aus einer Datenbank verschiedene Inhaltsstoffe auswählen und dann möglichst nah an meine vorgegebene Mischung rankommen. Hier ist es aber wichtig, dass gewisse Randbedingungen (min, max) erfüllt sein müssen.
Beispielsweise wenn ich sage ich möchte 100kg Substrat herstellen, was x% Zink, y% Nitrat, z% Calcium, p% Bor, q% Magnesium, r% Kupfer, s% Phosphor, t% Kalium, u% Eisen enthalten soll.
Dann wähle ich aus meiner Datenbank aus: ich möchte dieses Substrat aus Sand, Sägespänen, Perlit, Vermiculit, Kompost, Gartenkalk, Torf und Kokosfasern herstellen. Dann soll die Funktion in der Datenbank die einzelnen Nährstoffe abfragen und mir sagen wie ich am nächsten an das gewünschte Ergebnis heran komme. Hierfür sollten aber zuvor die Randbedingungen entfernt werden, denn zuviel oder zu wenig Nährstoffe dürfen in dem Substrat nicht enthalten sein.
ich stelle mir das script so in der art vor, wobei x ,y, z, g meine Inhaltsstoffe sind, und m und k mein gewünschtes Ergebnis.
Code: Alles auswählen
inhaltsstoffe = {x: {'m': 1, 'k': 4},
y: {'m': 3, 'k': 1},
z: {'m': 6, 'k': 7},
g: {'m': 4, 'k': 9}}
substrat_inha = {'x', 'y', 'z'}
substrat_soll = {'m': 2, 'k': 4}
# hier passiert die Magie [...]
results = {{'x': 0, 'y': 0, 'z': 0} -> {'m': 0, 'k': 0},
{'x': 0, 'y': 0, 'z': 1} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 0, 'z': 2} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 0, 'z': 3} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 0, 'z': 4} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 0, 'z': 5} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 0, 'z': 6} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 0, 'z': 7} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 0, 'z': 8} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 0} -> {'m': 0, 'k': 0},
{'x': 0, 'y': 1, 'z': 1} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 2} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 3} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 4} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 5} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 6} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 7} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 1, 'z': 8} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 0} -> {'m': 0, 'k': 0},
{'x': 0, 'y': 2, 'z': 1} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 2} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 3} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 4} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 5} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 6} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 7} -> {'m': 1, 'k': 0},
{'x': 0, 'y': 2, 'z': 8} -> {'m': 1, 'k': 0}}
print solution
Vielen Dank!
Kröte