From ee9cdab0796cd044f1a554c718b4830dbcda02a3 Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Fri, 25 Oct 2019 18:11:32 +0200 Subject: [PATCH] =?UTF-8?q?04:=20Dal=C5=A1=C3=AD=20p=C5=99=C3=ADklady=20z?= =?UTF-8?q?=20cvi=C4=8Den=C3=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 04-trideni/odmocnina.py | 21 +++++++++++++++++++++ 04-trideni/rovnice.py | 18 ++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 04-trideni/odmocnina.py create mode 100755 04-trideni/rovnice.py diff --git a/04-trideni/odmocnina.py b/04-trideni/odmocnina.py new file mode 100755 index 0000000..0977232 --- /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 0000000..e967da3 --- /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) -- GitLab