Helmikuun koodauspähkinä

Matemaattiset ohjelmointipähkinät ovat siitä mielenkiintoisia, että ne on yleensä helppo määritellä, mutta ratkaisu saattaa osoittautua yllättävän hankalaksi. Haastamme blogin lukijat nyt ratkomaan seuraavaa pintapuolisesti yksinkertaista ongelmaa:

Jaa luvut sqrt(1), sqrt(2), … , sqrt(100) kahteen osaan siten, että osien summat ovat mahdollisimman lähellä toisiaan.

Esimerkiksi laittamalla parillisten lukujen neliöjuuret yhteen joukkoon ja parittomien toiseen joukkoon, saadaan osien summiksi noin 338,05 ja 333,42, ja eroa jää noin 4,63.

Pystytkö parempaan? Koodaa ohjelma, joka etsii mahdollisimman hyvän ratkaisun, ja postaa tuloksesi kommentteihin!

Jarno Niklas Alanko
Toimittaja, Skrolli