Portál AbcLinuxu, 10. května 2025 02:32
SMESI.txt:
# p1, p2, p3, p4, p5, p6 # (sloupecky obsahuji mnozstvi prvku v dane smesi, radky jsou jednotlive receptury)
1 2 10 5 6 7 # smes cislo jedna 1xp1 + 2xp2 + 10xp3 .... + 7xp6
4 7 3 1 8 12 # smes cislo dva 4xp1 + 7xp2 + 3xp3 .... + 12xp6
...........
11 2 8 1 96 18 # smes cislo dveste 11xp1 + 2xp2 + 8xp3 .... + 18xp6
POZADAVEK.txt
230 300 127 55 200 700 # chci smes obsahujici priblizne 230xp1 + 300xp2 + 127xp3 ... + 700xp6
==============
VYSLEDEK.txt
5
0
3
12
.
.
35
# vezmi napriklad 5 dilu smesi 1+ 0 dilu smesi 2 + 3 dily smesi 3 + ... + 35 dilu smesi 200
# a dostanes neco velmi blizkeho pozadavku
Je to nejake carovani s maticemi, ale ted mu nemuzu prijit na jmeno. Problem je samozrejme v tom, ze
Řešení dotazu:
1*A1 + 4*A2 +...+ 11*A200 = 230 2*A1 + 7*A2 +...+ 2*A200 = 300 . . .Vzhledem k tomu, že proměnných je více než rovnic tak všechna řešení budou vytvářet podprostor v tom 200 dimensionálním prostoru směsí. Stačí to pak oříznout pro nezáporný podprostory. Asi nejjednodušší řešení je nalézt prvních n nezávislých směsí, kde n je počet prvků ve směsích a to jednoduše vyřešit jako soustavu rovnic. Třeba tím simplexem.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.