Algoritmiongelman kuvaus

Ongelma on tullut alunperin vastaan todellisessa asiakasprojektissa, jossa tuotteen kulkua tuotantolinjalla täytyi pystyä seuraamaan. Vaiheessa A oli esimerkiksi 8 tuotetta, jonka jälkeen kaksi peräkkäistä tuotetta yhdistettiin vaiheessa B yhdeksi. Vaiheessa C tuotteet jälleen erotettiin tai leikattiin toisistaan erilleen, mutta nyt järjestys on eri kuin kohdassa A. Jos artikkelin pääkuva ei näy, se löytyy täältä.

Algoritmiongelman tehtävänanto

Tehtävänä on luoda algoritmi tai menetelmä, jolla A ja B sarakkeesta saadaan luotua sarake C kuvan pääkuvan esimerkin mukaisella logiikalla.

Ratkaisun on oltava yleispätevä, eli sen täytyy toimia esimerkiksi riippumatta rivimäärästä. A-sarakkeen luvut menevät aina järjestyksessä ykkösestä alkaen. B sarakkeen luvut alkavat aina ykkösestä ylöspäin, mutta samaa lukua voi esiintyä useita kertoja. Algoritmin täytyy toimia esimerkiksi alla olevassa toisessa esimerkissä.

ABC
112
211
324
423
535
6410
749
848
947
1046

Mikä on algoritmi?

Algoritmi terminä tarkoittaa joukkoa ohjeita. Esimerkiksi 1) Poista joka toinen rivi 2) Lisää sarakkeen B lukuja yhdellä, ja niin edelleen. Ratkaisussa voi käyttää jonkin ohjelmiston ominaisuuksia, koodia tai sanallista selitystä.

Algoritmiongelman ratkaisu

Ratkaisun tehävään antoi alun perin Joel Kosola . Menetelmä on esitetty alla olevassa videossa .