Algoritmit matematiikassa

MAA12

Algoritmi

  • Algoritmilla viitataan täsmälliseen, vaiheittaiseen ongelmanratkaisumenetelmään
  • Matematiikassa algoritmit on tyypillisesti erilaisia laskenta- ja yhtälönratkaisumenetelmiä, ja ne keskittyvät nimenomaan matematiikkaan eikä suoraan tiettyyn sovelluskohteeseen
  • Monet matematiikan sovellukset kuitenkin ovat riippuvaisia tehokkaista, tietokoneella suoritettavista algoritmeista
  • Algoritmi esitetään usein joko listana algoritmin vaiheista, (pseudo-)ohjelmakoodina tai vuokaaviona

Algoritmeja löytyy matematiikan ulkopuoleltakin, esim. signaalinkäsittelystä (kohinanpoisto) tai tietojenkäsittelytieteestä (järjestämisalgoritmit)

Vuokaaviona esitetty algoritmi

  1. Onko luku x välillä [0,10]?
  2. Onko luku x välillä [10,15]?
  3. Onko luku x välillä [10;12,5]?
  4. Onko luku x välillä [12,5;13,75]?

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