MAA12
Algoritmeja löytyy matematiikan ulkopuoleltakin, esim. signaalinkäsittelystä (kohinanpoisto) tai tietojenkäsittelytieteestä (järjestämisalgoritmit)
Vuokaaviona esitetty algoritmi
Python-koodina:
import math # Tuodaan matematiikkakirjasto
otonLuku = 13 # Matti ei tiedä tätä
# Asetetaan ala- ja yläraja
a = 0.0
b = 20.0
# Jatketaan, kunnes tiedetään luku
while True:
# Lasketaan keskiarvo
c = (a+b)/2
print("Matti: Onko luku välillä [" + str(a) + "," + str(c) + "]?")
if otonLuku >= a and otonLuku <= c:
print("Otto: Kyllä.")
b = c
else:
print("Otto: Ei.")
a = c
# Tiedetäänkö luku? Tiedetään, jos alaraja ylöspäin
# ja yläraja alaspäin pyöristettynä ovat sama luku
if math.ceil(a) == math.floor(b):
break
print("Matti: AHAAAAA!!!! Luku on " + str(math.ceil(a)))> Matti: Onko luku välillä [0.0,10.0]?
> Otto: Ei.
> Matti: Onko luku välillä [10.0,15.0]?
> Otto: Kyllä.
> Matti: Onko luku välillä [10.0,12.5]?
> Otto: Ei.
> Matti: Onko luku välillä [12.5,13.75]?
> Otto: Kyllä.
> Matti: AHAAAAA!!!! Luku on 13