Warning
This page is located in archive. Go to the latest version of this course pages.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:b3b33alp:cviceni:t07 [2019/09/21 11:39]
stepan removed
courses:b3b33alp:cviceni:t07 [2019/11/11 08:36]
herinjan [Těžká varianta]
Line 142: Line 142:
  
 ==== Lehká varianta ==== ==== Lehká varianta ====
-  * Napište program **recurent.py** pro výpočet následující rekurentní funkce:  +  * Napište program **recurrent.py** pro výpočet následující rekurentní funkce:  
-    * $R_n(x)=\frac{n-2}{n}xR_{n-1}(x)-\frac{1}{n}R_{n-2}(x)+\frac{3}{n+1}R_{n-3}(x)$,​ přičemž +    * $R_n(x)=\frac{n}{n+1\cdot R_{n-1}(x) ​+ (-1)^n \cdot \frac{n+2}{n} \cdot R_{n-2}(x) + \frac{x}{n+2\cdot R_{n-3}(x)$,​ přičemž 
-    * $R_0(x)=1$, $R_1(x)=x$ a $R_2(x)=2x$+    * $R_0(x)=1$, $R_1(x)=2 \cdot x$ a $R_2(x)= ​3 \cdot x$
   * Program načte z první řádky standardního vstupu celé kladné číslo $n$ a z druhé řádky standardního vstupu reálné číslo $x$.   * Program načte z první řádky standardního vstupu celé kladné číslo $n$ a z druhé řádky standardního vstupu reálné číslo $x$.
   * Program na výstup vytiskne hodnotu $R_n(x)$. ​   * Program na výstup vytiskne hodnotu $R_n(x)$. ​
 +  * Ověření výsledku probíha s přesností na 8 desetinných míst.
   * Program musí pracovat efektivně a umět spočítat hodnotu funkce $R$ i pro hodnoty n=100   * Program musí pracovat efektivně a umět spočítat hodnotu funkce $R$ i pro hodnoty n=100
-  * Program v souboru **recurent.py** odevzdejte do odevzdávacího systému (úloha HW07).+  * Program v souboru **recurrent.py** odevzdejte do odevzdávacího systému (úloha HW07).
  
 Například pro vstup: Například pro vstup:
 <​code>​ <​code>​
-3 +7 
-14.58+1.577
 </​code>​ </​code>​
  
 program vytiskne: program vytiskne:
 <​code>​ <​code>​
-137.6076+4.24302193
 </​code>​ </​code>​
  
 ==== Těžká varianta ==== ==== Těžká varianta ====
-  * Napište program **ubongo.py**, který si ze souboru se jménem prvního argumentu programu, ​přečte ​rozměr pole a dílykterými má to pole zaplnit +  * Napište program **bracket.py**, který si ze standardního vstupu ​přečte ​číslo Nna druhé ​řádce číslo Mna třetí řádce ​číslo O 
-    * první ​řádek obsahuje dvě čísla //S// //R//kde //R// je počet ​řádků a //S// je počet sloupců obdélníkového pole +  Na standardní výstup vygeneruje ​všechny možné korektní uzávorkování s použitím N závorek typu '​()'​M závorek typu '​[]'​ a O závorek typu '​{}'​ 
-    dále násluduje //R// řádků, kde  +  Čísla MN, O jsou celá čísla ​větší nebo rovna 0 
-      * 0 - definují volná pole maticikterá se mají vyplnit zadanými dílky +  Pořadí jednotlivých ​řádků výstupu nehraje při vyhodnocení roli. 
-      -1 - definují obsazená polekam dílky nesmí zasahovat  +  * Program v souboru **bracket.py** odevzdejte do odevzdávacího systému ​(úloha HW07). 
-      * čísla ​na jednom řádku jsou oddělena jednou nebo více mezerami (použijte funkci "​split()"​ bez parametrů). +
-    * každý další řádek obsahuje popis jednoho dílku: +
-      jedna řádka obsahuje souřadnice čtverečků (x y), ze kterých je sestaven celý dílek +
-      * souřadnice jsou uvedeny za sebou bez oddělovacích čárek a závorek +
-      * jednotlivé souřadnice mohou být libovolně posunuty, dílek nemusí obsahovat čtverec se souřadnicemi (0,0)  +
-  * Program v souboru **ubongo.py** nalezne pokrytí volných polí matice dílky, které mohou být natočeny, ale nesmí být převráceny. +
-  * Výstupem programu je pokrytí matice dílky, kdy plocha prvního dílku ​(zadaný v souboru hned za maticí volného místaje vyplněna číslem 1, plocha druhého dílku (na další řádce za prvním dílkem) číslem 2, ...+
  
-  ​Notace pro popis dílků: je to seznam x y souřadnic. +**Příklad I*Vstup<​code>​ 
-  ​Pro T-dílek na obrázku je jeho popis0 0 2 0 1 1 +1 
-{{:courses:​b3b33alp:​cviceni:​blokus1.eps.png?​200|}} +2 
- +
-  * Pro vstup  +</​code>​ Výstup:<​code>​ 
-<​code>​ +[]([]) 
-5 5 +()[][] 
- 0  0 0 0 0 +[[]]() 
- 0  0 0 0 0 +[][]() 
- 0  0 0 0 0 +()[[]] 
--1  0 0 0 0 +[()][] 
--1 -1 0 0 0 +([])[] 
-0 0 0 1 0 2 1 2 2 2 2 1 +[[()]] 
-0 0 0 1 1 1 2 1 2 0 2 2 +[()[]] 
-0 0 1 0 1 1 1 2 1 3 +[([])] 
-0 2 1 2 2 2 1 1 1 0+[[]()] 
 +([[]]) 
 +[][()] 
 +([][]) 
 +[]()[]
 </​code>​ </​code>​
- +  ​ 
-Příklad ​dílku 1: +**Příklad ​II.** Vstup <​code>​ 
-<​code>​ +1 
-0 0 0 0 2 2 2 2 2 1+1 
 +1
 </​code>​ </​code>​
 +program vytiskne (ukazujeme pouze prvních 15 řádků, délka úplného řešení pro vstup (1, 1, 1) je 30):
 <​code>​ <​code>​
-souřadnice ​ +([{}]) 
-y+([]{}) 
 +([]){} 
 +({[]}) 
 +({}[]) 
 +({})[] 
 +()[{}] 
 +()[]{} 
 +(){[]} 
 +(){}[] 
 +[({})] 
 +[(){}] 
 +[()]{} 
 +[{()}] 
 +[{}()] 
 +...
  
-2*** 
-1* * 
-0* 
- 012 souřadnice x 
 </​code>​ </​code>​
- 
- 
- 
-Graficky znázorněné všechny dílky 
- 
-1:​{{:​courses:​b3b33alp:​cviceni:​ubongo-0.png?​100|}} 
-2:​{{:​courses:​b3b33alp:​cviceni:​ubongo-1.png?​100|}} 
-3:​{{:​courses:​b3b33alp:​cviceni:​ubongo-2.png?​100|}} 
-4:​{{:​courses:​b3b33alp:​cviceni:​ubongo-3.png?​100|}} 
- 
- 
-program vytiskne: 
- 
-<​code>​ 
-4 3 3 3 3 
-4 4 4 2 3 
-4 2 2 2 1 
--1 2 1 2 1 
--1 -1 1 1 1 
-</​code>​ 
- 
courses/b3b33alp/cviceni/t07.txt · Last modified: 2019/11/11 08:36 by herinjan