# +----------------------------------------------------+
# |                  Lekce 1 - demo 3                  |
# +----------------------------------------------------+
# Zaokrouhlovaci chyba pri odcitani.
# Odcitani skoro stejne velkych cisel vede na drasticky
# narust relativni chyby. Nasledujici dve procedury by mely
# dat stejny vysledek, ale prakticky dava druha z nich vysledek
# daleko presnejsi. V prvnim vypisu je chyba mala diky sikovne
# volbe pocatecnich dat, ale na to nelze obecne spolehat, jak
# je videt z druheho vypisu

from math import sqrt

def sqrt_minus(n):
    return sqrt(n+1)-sqrt(n)

def sqrt_plus(n):
    return 1.0/(sqrt(n+1)+sqrt(n))

print (" ",sqrt_minus(2**16),"\n ",sqrt_plus(2**16))
print (" ")
print (" ",sqrt_minus(2**15),"\n ",sqrt_plus(2**15))
