Programování 1 – 3. cvičení
Funkce – cvičení
Napište následující funkce. Zkuste doplnit i typové anotace parametrů a návratové hodnoty.
- Napište funkci
compare(a, b), která vrací1proa > b,0proa == ba-1proa < b. - Napište funkci
is_even(number), která přijme celé číslo jako argument a vracíTrue, je-li číslo sudé, aFalse, je-li liché. - Nyní napište funkci
is_odd(number), která vracíTrue, je-linliché aFalse, je-li sudé. Využijte funkciis_even. - Napište funkci, která počítá ciferný součet čísla.
Odhad Metodou Monte Carlo
Vytvořte program, který odhadne hodnotu pomocí metody Monte Carlo.
Mějme čtverec s vrcholy a v něm čtvrt kruhu se středem a poloměrem . Obsah čtvrtkruhu je , obsah čtverce je . Z poměru obsahů vyjádříme .
Nyní využijeme metodu Monte Carlo k odhadu obsahů. Budeme náhodně generovat body ve čtverci a počítat, kolik z nich padne dovnitř čtvrtkruhu. Počet bodů ve čtvrtkruhu dělený celkovým počtem vygenerovaných bodů nám dá odhad poměru obsahů .
Nápovědy:
- Pro vygenerování náhodného čísla z rozsahu použijte
random.uniform(0, 1)(na začátek souboru musíte napsatimport random, abyste knihovnurandommohli používat). - Pro výpočet vygenerujte bodů.
- Pro zjištění, jestli je bod uvnitř kruhu, můžete pomocí Pythagorovy věty spočítat jeho vzdálenost od středu kruhu a porovnat ji s poloměrem.
Více o metodě Monte Carlo najdete třeba na Wikipedii (je tam i řešení v Pythonu, tak na něj zkuste nekoukat a psát kód sami).