Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 15. 05. 2016 15:16

cetis
Příspěvky: 53
Škola: MFF UK
Pozice: student
Reputace:   
 

Míchání lektvarů

Zdravím,

potřeboval bych poradit s touto úlohou:

Máme vytvořit lektvar. V hrnci, jehož objem je 200 jednotek. Do hrnce přidáváme přísady, které obsahují látky K a L.
Na vstupu zadáme poměr těchto látek, počet přísad a nakonec popíšeme v jakém poměru přísady obsahují dané látky. Na výstupu bude kolik lze z hrnce udělat lektvarů.

Např.

Lektvar s poměry:
2 3
Počet přísad:
5
Poměr látek v přísadách:
1 0
0 1
2 3
3 2
1 2

Řešení:
1 0
0 1
2 3
1 3
Výsledek: 4 6
Celkově je v tomto lektvaru 10 jednotek a je to největší množství lektvarů, jaké bylo možno z těchto přísad namíchat. Takže výstup bude 10.

Úlohu řeším pomocí dynamického programování.
Mám dvourozměrné pole a podle poměru látek určuji souřadnice jednotlivých přísad. Na pozici, kde má přísada být, uložím vždycky "1".

Úplně jsem se zasekl u toho, jak bych měl sčítat dané přísady. Napadlo mě, že budu procházet pole do tý doby než naleznu policko s hodnotou jedna a od něho hledám dalsí policko se stejnou hodnotou, a když obě dvě přísady sečtu, tak je uložím do nového políčka podle toho, jaký má součet dvou přísad hodnotu, ale úplně mi to nešlo naprogramovat a nevím si s tím moc rady..

Budu vděčný za jakoukoliv radu.
Děkuji

Offline

 

#2 16. 05. 2016 16:57

dzejkob
Zelenáč
Příspěvky: 10
Reputace:   
 

Re: Míchání lektvarů

Pokud to chceš řešit přes to 2d pole, pak bych si dal pozor na několik věcí:

- políčko na souřadnici x,y musí obsahovat obě hodnoty K a L odděleně, aby se k nim dalo přičítat

- když nastane kolize, tak nelze určit, která hodnota je ta správná - takže políčko musí umět obsahovat až N různých hodnot - tedy N kombinací K, L (není totiž zřejmé, jaký bude poměr po přičtení několika dalších přísad - takže tady váha nepřebíjí, ale možnosti se větví)

- když se přičte přísada k políčku, kde je více než 1 hodnota, tak se musí přičíst a zkopírovat všechny

potom bych tam udělal i nějakou optimalizaci, že když už je ten poměr takový, že ho nelze ze zbylých přísad dorovnat, tak bych ve větvi nepokračoval

je ale třeba znát, ze kterých položek se daná hodnota skládá - to se může vyřešit třeba odkazy na předchozí políčka

jinak na ose x bych viděl počet jednotek, který je součtem těch látek

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson