Tässä tehtävässä tarkastellaan luentojen luvun 7.1 ohjelmia
helppo ja nopea.
Merkitsemme niiden muuttujan nn arvoa symbolilla n.
Muuttuja n voi saada arvokseen nollan tai positiivisen kokonaisluvun.
Luentojen mittauksissa käytetty tietokone kokeilee noin 215 miljoonaa paria
sekunnissa ajaessaan ohjelmaa helppo.
Miksi helppo käyttää useita sekunteja, kun n ≥ 30 000?
Valitse seuraavista vaihtoehdoista.
Ohjelmien helppo ja nopea ajan kulutus riippuu
muustakin kuin kokeiltavien parien määrästä.
Silloin kun tavoitteena on osoittaa, että ohjelma on hidas, ei ole
välttämätöntä tarkastella kaikkea mitä se tekee.
Riittää, että osoitetaan, että ohjelma tekee ainakin nääääin paljon
asioita, joten aikaa kuluu ainakin nooooin paljon.
Siksi ohjelman helppo tarkastelu edellä on pätevä.
Mutta kun tavoitteena on osoittaa, että ohjelma on nopea, on tarkasteltava
kaikkea mitä se tekee.
Kattava tarkastelu on niin monimutkaista, että emme tee sitä tällä kertaa.
Opettaja on tehnyt kattavan tarkastelun ja lupaa, että ohjelmien
helppo ja nopea tapauksessa kokeiltavien parien määrän
tarkasteleminen antaa oikean yleiskäsityksen.
Takahuippujen määrää ei välttämättä tiedetä etukäteen.
Siksi haluamme kokeiltavien parien määrälle ylälikiarvon, joka ei riipu
m:stä.
Milloin takahuippujen määrä on suurimmillaan?
Toivottavasti mieleesi jäi, että ei ole yhdentekevää, minkälaista
algoritmia ohjelma käyttää.
Suoritusaika voi riippua siitä valtavasti.
On paljon kivempi odotella vastausta yksi sekunti kuin monta vuorokautta.
Toivottavasti mieleesi jäi myös, miten päättelimme suoritusajasta.
Päättelytaidon harjoittelemiseksi kannattaa nähdä vaivaa.
Hyvästä päättelytaidosta on todella paljon hyötyä sekä opinnoissa että töissä.