Zdravim, už zase potřebuji poradit s domácím úkolem. Je to trochu složitější, tak radši přikládám zadání:
Zadání úkolu
► Zobrazit spoiler
Úkolem je vytvořit program, který bude optimalizovat stavbu větrných elektráren.
Základem větrné elektrárny je nosný tubus. Ten je příliš velký než aby bylo možné jej dopravit v jednom kuse. Proto je potřeba jej na místě sešroubovat z jednotlivých menších segmentů. Předpokládejme, že máme vyrobené jednotlivé segmenty, které mají připravené příruby. Oba konce segmentu jsou opatřeny přírubami, pro každou přírubu znáte počet šroubů, kterými se stahuje. Pořadí segmentů je pevně dané, sousední segmenty mají pochopitelně příruby kompatibilní (pro stejný počet šroubů).
Při montáži lze sestavovat segmenty libovolně. Není potřeba tubus stavět od základu po jednom segmentu v pořadí 1 - 2 - 3 - 4, naopak, na zemi lze sestavit více segmentů do většího celku a ten umístit na rostoucí tubus, máme dost výkonný jeřáb. Tedy lze například sestavit segmenty 1 - 2, pak samostatně 3 - 4 a sestavené 3 - 4 umístit na sestavené 1 - 2. Omezující je cena, kterou montáž stojí. Protože tubus musí být ideálně kolmý, musíme při montáži neustále kontrolovat přesnost sestavení.
Předpokládejme, že máme dvě sousedící části tubusu: spodní A a na ni navazující horní B. A i B mohou být tvořeny buď jedním segmentem nebo více segmenty, které byly již dříve sestavené. Část A má spodní přírubu s x1 šrouby a horní přírubu s x2 šrouby, část B má spodní přírubu s x2 šrouby (aby šla sestavit s A) a horní přírubu s x3 šrouby. Na sestavení částí A a B potřebujeme utáhnout x2 šroubů a zkontrolovat přesnost sestavení. Utažení šroubů stojí x2, kontrola sestavení stojí x1 * x3 (kontrolujeme každý s každým šroubem).
Program dostane na vstupu parametry segmentů, ze kterých sestavujeme tubus. Zadané jsou počty šroubů v jednotlivých přírubách. Pokud má například tubus 3 segmenty A, B a C, kde segment A má spodní přírubu s x1 šrouby, horní s x2 šrouby, segment B spodní s x2 šrouby a horní s x3 šrouby a segment C spodní s x3 a horní s x4 šrouby, budou na vstupu 4 celá čísla x1 x2 x3 x4.
Výstupem programu bude vypočtená nejnižší možná cena za kterou lze celý tubus sestavit.
Ukázka práce programu:
Zadejte pocty sroubu pro jednotlive priruby:
30 20 25 10
Cena: 545
Program by měl nejprve vypočítat (30*25+20)+(30*10+20) což je 1090 a pak (20*10+25)+(30*10+20) a to je 545. Druhý výsledek je menší, takže ho zobrazí. jenže těch hodnot může být víc než čtyři a já nevím, jak to udělat, aby vyzkoušel všechny možnosti. Neví někdo jak na to?