diff --git a/04-trideni/odmocnina.py b/04-trideni/odmocnina.py new file mode 100755 index 0000000000000000000000000000000000000000..09772321b49bfc7e194d903ce234a409030d61de --- /dev/null +++ b/04-trideni/odmocnina.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python3 +# Výpočet celočíselné druhé odmocniny binárním vyhledáváním. + +x = int(input()) + +# Odmocnina se nachazí v intervalu [l, p] +l = 0 +p = x + +while l <= p: + stred = (l+p) // 2 + pokus = stred**2 + if pokus == x: + print("Odmocnina je", stred) + break + elif pokus < x: + l = stred + 1 + else: + p = stred - 1 +else: + print("Odmocnina není celé číslo") diff --git a/04-trideni/rovnice.py b/04-trideni/rovnice.py new file mode 100755 index 0000000000000000000000000000000000000000..e967da3797689c3968b1f7359b2ed08319452241 --- /dev/null +++ b/04-trideni/rovnice.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 +# Přibližné řešení rovnice x=cos(x) binárním vyhledáváním + +from math import cos + +# Udržujeme interval [l,p] takový, že x-cos(x) má na obou +# krajích intervalu opačná znaménka. +l = 0 +p = 1 + +while p-l > 1e-10: + x = (l+p) / 2 + if x-cos(x) < 0: + l = x + else: + p = x + +print("Kořen leží mezi", l, "a", p)