NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Ukol se zahradníkem

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Impuls
Člen
Avatar
Impuls:2.1.2016 17:01

Ahoj, ve škole jsme dostali následující ukol:
● Máme záhonek, který má zadaný počet řádků.
● Na každý řádek můžeme vysadit cibulky cibule nebo stroužky česneku, vždy jen jeden druh.
● Nesmíme však sázet dva řádky česneku vedle sebe.
● Kolika způsoby můžeme řádky cibule a řádky česneku na záhonek vysázet?

Jako parametr metody se předává počet řádků. Věděl by někdo poradit? Vůbec si nevím rady jak to vypočítat.

 
Odpovědět
2.1.2016 17:01
Avatar
B42P6
Člen
Avatar
B42P6:2.1.2016 17:38

Ahoj. Ja by som to robil asi pomocou rekurzie. Vytvoríš si metódu ktorá bude brať ako parameter predošlý riadok , počet zostávajúcich riadkov a vracať počet možností. Vytvoríš si pole kam si uložíš všetky druhy (v tvojom prípade cibuľu a cesnak). Vytvoríš si podmienky (v tvojom prípade ak je predošlý riadok cibuľa ďalší nemôže byť cibuľa) . Potom v každom volaní vylúčiš podľa podmienok tie druhy ktoré nemôžu nasledovať (ostanú ti iba tie ktoré môžu nasledovať). Prejdeš to pole s prvkami, a voláš tu istú metódu na každý prvok v poli (dekrementuješ počet zostávajúcich riadkov). Keď bude parameter počet zostávajúcich riadkov 1 vrátiš veľkosť poľa (toho kde sú iba prvky ktoré môžu nasledovať). Potom už to je jednoduché (iba pripočítavaš počty možnosti).

Nahoru Odpovědět
2.1.2016 17:38
'long long long' is too long for GCC
Avatar
B42P6
Člen
Avatar
Odpovídá na B42P6
B42P6:2.1.2016 18:15

Ak som to napísal chaoticky, kľudne mi napíš Správu. ;)

Nahoru Odpovědět
2.1.2016 18:15
'long long long' is too long for GCC
Avatar
coells
Tvůrce
Avatar
Odpovídá na Impuls
coells:2.1.2016 19:44

Výsledkem jsou Fibonacciho čísla.

 
Nahoru Odpovědět
2.1.2016 19:44
Avatar
Impuls
Člen
Avatar
Odpovídá na coells
Impuls:2.1.2016 19:55

A věděl by si i důvod?

 
Nahoru Odpovědět
2.1.2016 19:55
Avatar
coells
Tvůrce
Avatar
Odpovídá na Impuls
coells:2.1.2016 20:19

Věděl, k řešení vede Markovův řetězec [1 1; 1 0], z něj se dá přímo dokázat vzorec.
Ty si to můžeš odvodit tak, že si pár záhonků nakreslíš a zamyslíš se nad tvorbou zahrady o jeden řádek delší.

 
Nahoru Odpovědět
2.1.2016 20:19
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.