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
↑↑ fofo:
Už naposledy takto:
p.c.n 1 2 3 4 5
----------------------------
objem 9 9 7 5 7
zac z-do 9 9 0 0 0
----------------------------
1. 1-3 2 9 7 0 0
2. 1-4 0 9 7 2 0
3. 2-4 0 6 7 5 0
4. 4-1 5 6 7 0 0
5. 3-1 9 6 3 0 0
6. 1-4 4 6 3 5 0
7. 1-5 0 6 3 5 4
8. 4-1 5 6 3 0 4
9. 2-4 5 1 3 5 4
10. 4-1 9 1 3 1 4
11. 1-5 6 1 3 1 7
12. 5-2 6 8 3 1 0
13. 1-5 0 8 3 1 6
14. 3-1 3 8 0 1 6
15. 4-3 3 8 1 0 6
16. 2-4 3 3 1 5 6
17. 4-5 3 3 1 4 7
Offline
ahoj všem,
chtěl bych se zeptat, kdybych chtěl takovouto úlohu naprogramovat, třeba pro 4 nádoby, metoda prohledávání do šířky, stím, že bych
negeneroval celý stavový strom, ale jen do té doby něž najdu cílový stav. Zajímá mě, jaká programovací technika bude nejpřijatelnější?
Neřeším ani tolik časovou ani pamětovou složitost, jde mi spíš o to, to co nejjednodušeji napsat.
díky
Offline
Možná se pletu, ale po zběžném prozkoušení první úlohy a prohlédnutí dalších bych řekl, že počítač ani není potřeba. Vzhledem k zadání bude totiž dost výhodné postupovat odzadu. Netvrdím, že to je extra elegantní nebo univerzální, ale pro úlohy, které se tu objevily by to mělo fungovat rozumně.
Mame nadoby o objemu 10, 7, 7 a 4 litry, v 10-ti litrove nadobe je 10 litru, jedna 7-mi litrova nadoba je prazdna, v druhe 7-mi litrove nadobe je 7 litru, 4 litrova nadoba je prazdna. Jak pomoci prelevani docilime stavu 10, 2, 2, 3 ?
Pozorování (P): Při každém přelévání se aspoň jedna z "interagujících" nádob naplní nebo vyprázdní ( =: stane se extremistou). Vzhledem k tomu, že ve všech úlohách máme dojít do stavu, kdy je právě jedna z nádob extremista se to bude dost hodit.
Konkrétně k první úloze.
Máme nádoby objemu 10, 7, 7, 4 a dojít do stavu (10 2 2 3). Budeme přemýšlet, jaký byl poslední krok (tedy předposlední stav). Z našich nádob je extremista pouze 1. a proto se musela posledního přelévání účastnit (zřejmě jsme ji plnili). Padá tedy v úvahu přelévání mezi 1-2 (1-3 je to samé) nebo mezi 1-4. Zbývá rozhodnout, kolik se kde přelilo, pokud to vůbec šlo.
Pomůže nám, že i v předposledním stavu potřebujeme aspoň jednoho extremistu (buď to už je výchozí stav, kde je toto bylo ve všech úlohách splněno, nebo nejaký stav, do kterého se dostaneme přeléváním - potom (P)).
Možnosti:
(a) přelévání mezi 1-2: předposlední stav musí být tvaru (x y 2 3). Zřejmě 3. ani 4. nádoba není plná/prázdná. 1. nádoba určitě nebude plná (abychom do ní mohli lít) ani prázdná (to by znamenalo, že jsme do ní posledním krokem z 2 přelili 10 litrů - nelze). Extremista tedy musí být 2. Prázdná nebude (lijeme z ní), tedy bude plná (a snadno dopočteme, kolik vody je tedy v 1).
První kandidát na předposlední stav je tedy (5 7 2 3).
(b) přelévání mezi 1-4: stejnou úvahou - chci (x 2 2 y), 1., 2. ani 3. extremista nebude -> 4. musí být plná.
Druhý kandidát tedy (9 2 2 4).
A situace se moc nezměnila, takže lze stejnou metodou pokračovat.
Asi jsem to napsal dost děsivě, ale na papíře snad bude naprosto jasné, o co jde. Pořád to je trochu patlačka, ale po pár krocích už se člověk rozkouká (rozmyslí si, co dělá a které možnosti už od pohledu nemá cenu zkoušet) a jde to docela rychle. Pro takovéto hezké úlohy se to dokonce ani moc nevětví. Zadané úlohy je asi reálné takto dořešit, ale ikdyby se to po pár krocích začalo už moc větvit, a člověk to zas začal zkoušet od začátku, tak má aspoň víc stavů, do kterých se trefovat.
tip: Pokud máš problém přepnout na zpětný chod "přilitím čeho odkud jsem mohl dostat toto", můžeš radši o úloze přemýšlet jako o přelévání nezaplněného objemu. Pravidla pro přelévání vody z X do Y jsou stejná jako pro přelévání prázdnoty z Y do X.
Offline
Já celkem chápu ten princip, že musí být pořád jedná maximálně plná nebo úplně prázdná.
Ale v momentálním zadání mi to nejak hapruje.
Zkusím teda naznačit kam jsem došel:
1. 2. 3. 4. 5. 6.
10 10 10 7 7 7 objem nádob
10 9 8 7 0 0 počáteční stav
_______________
9 9 9 6 1 0 konečný stav kterého máme dosáhnout
2 9 9 6 1 7 předpokládám že poslední tah bude z plné 6. např. do 1.
2 9 10 6 1 6
2 9 4 6 7 6
2 10 4 6 6 6 v tomto kroku jsem skončil, protože jediný další tah mi vychází z plné 2. do 4.,5. nebo 6. čímž se vracím vlastně o krok zpět.
Nepotřebuju to vyřešit celé. Stačilo by mi naznačit kde jsem udělal chybu nebo jak dál pokračovat.
Offline
Ahoj, poradíte mi taky někdo s přeléváním?
Mám úkol- 5 nádob o objemu 10, 10, 5, 7 a 7 l, počáteční stav je 0, 0, 5, 7, 0 a mám dosáhnout stavu 4, 0, 1, 1, 6 - je to absolutně nad mé síly a nervy...plácám se v tom snad měsíc..Díky za každé nakopnutí.
Offline
Tak to nevím, mě to zadal kámoš, už třetí úkol, dva jsem si nějak nakreslila..s tímhle nehnu, tak jsem to sem zadala..po x dnech zoufalého kreslení a trhání papírů :-))
branquest neznám..mě nejde ani tak o výsledek jako o vysvětlení postupu..a z toho, co tady je moc nechápu.. :-))
jestli to je nějaký úkol, tak to se předem omlouvám, určitě nechci nikomu napovídat...mě to přišlo, že tohle nemá řešení,zadání sem je víceméně mé zoufalství... .-))
Offline