Mercurial > louis > peeves
view misc/sqrt/solution.py @ 0:20fea762903e
Import some exercises and solutions
author | Louis Opter <kalessin@kalessin.fr> |
---|---|
date | Sat, 29 Jun 2013 19:30:31 -0700 |
parents | |
children |
line wrap: on
line source
#!/usr/bin/env python def sq(n): return n * n def sqrt(n, precision): pivot = n / 2. left_halve = (0, pivot) right_halve = (pivot, n) while 1: halve_size = left_halve[1] - left_halve[0] if sq(left_halve[0]) <= n <= sq(left_halve[1]): pivot = left_halve[0] + halve_size / 2. if halve_size <= precision: return pivot left_halve = (left_halve[0], pivot) right_halve = (pivot, left_halve[1]) else: pivot = right_halve[0] + halve_size / 2. if halve_size <= precision: return pivot left_halve = (right_halve[0], pivot) right_halve = (pivot, right_halve[1]) print(sqrt(42, 1)) print(sqrt(4, 0.0011)) print(sqrt(2422.423, 0.1))