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
Dobry den, byl bych vdecny kdyby mi mohl nekdo poradit jak implementovat tuto, pro me hodne nepochopitelnou ulohu, do pascalu.
Zadani:
Máme tři nádoby o celočíselných objemech a,b,c (a,b,c nejsou větší než 10) ve kterých je na začátku objem x,y,z vody, v tomto pořadí.
Vodu můžeme přelévat z nádoby do nádoby, a to vždy tak, že nádobu kam lijeme, zcela zaplníme nebo tak, že nádobu odkud lijeme, zcela vyprázdníme. Objem přelité vody je určen tím, která z těchto variant nastane dříve.
Vodu nesmíme vylévat nikam jinam ani doplňovat z nějakého jiného zdroje.
Vstupem programu jsou po řadě čísla a,b,c a x,y,z udávající objemy a počáteční obsahy nádob.
Program vytiskne seznam všech objemů (včetně nuly, lze-li), kterých lze přeléváním dosáhnout (celý objem vody v kterékoliv z nádob) a u každého z nich uvede za dvojtečkou minimální počet potřebných přelití. Objemy v tomto seznamu budou vytištěny v rostoucím pořadí.
Příklad:
Vstup:
4 1 1 1 1 1
Odpovídající výstup:
0:1 1:0 2:1 3:2
Chtel bych spise poradit s logikou a jen naznacit kroky jak toho docilit. Napoveda je, ze mame pouzit prohledavani do sirky, coz vubec nevim co to je. Musim to udelat v pascalu a ja umim jen v c++, tak kdyby byla implementace hodne rozdilna, prosim zduraznete kde.
Dekuji
Offline
↑ piiity:
Bude třeba nastudovat si prohledávání do šířrky. Google o tom něco ví, anglicky se to jmenuje "breadth-first search", preferuješ-li anglické zdroje. Libovolná úvodní učebnice na algoritmy a datové struktury o prohledávání do šířky bude určitě taky mluvit. A zřejmě i nějaké slajdy z přednášky, pokud něco takového máte.
Obávám se, že bez znalosti prohledání do šířky nemá moc smysl pokoušet se úlohu řešit. Snad jen k té implementaci: Nebude příliš odlišná. Syntax samozřejmě bude jiná, ale v zásadě to bude "to samé v bledě modrém".
Pár odkazů: BFS na Wikipedii, na Algoritmy.net, zápisky z přednášky Martina Mareše.
Offline