Algoritmi tiheän sanasuorakulmion laadintaan

Olen itseoppinut ohjelmoija. Haluaisin oppia paremmaksi. Miten oppisin tekemään seuraavanlaisen ohjelman:

Mulla on joukko sanoja, jotka pitäisi laittaa sanaristikkomaisesti annetun kokoiseen suorakulmaiseen laatikkoon siten, että jokaisessa ruudussa olisi yksi kirjain. Ruudukosta voi lukea annetun sanan pystysuoraan, vaakasuoraan tai vinottain, eli yhteensä kahdeksaan asuuntaan. Lukemisessa siis kiinnitetään alkuruutu ja suunta, eli sana ei voi kiemurrella eri suuntiin. Millaisella algoritmilla saisin laitettua sanat mahdollisimman pieneen ruudukkoon?

Netistä luin, että simuloitu jääḧdytys tai genettinen algoritmi voisi toimia tuollaisissa tilanteissa. Mutta olen vielä niin aloittelija, että en osaa ohjelmoida tuollaista. Mistä löytäisin apua ongelmaan?

Yritin ymmärtää koodia osoitteessa https://stackoverflow.com/questions/3382859/solving-a-recreational-square-packing-problem?rq=1 , 6502:n linkissä, mutta en saanut sitä muokattua ei-neliöruudukkoihin.
Ilmianna
Jaa



Vastaa alkuperäiseen viestiin

Algoritmi tiheän sanasuorakulmion laadintaan

Olen itseoppinut ohjelmoija. Haluaisin oppia paremmaksi. Miten oppisin tekemään seuraavanlaisen ohjelman:

Mulla on joukko sanoja, jotka pitäisi laittaa sanaristikkomaisesti annetun kokoiseen suorakulmaiseen laatikkoon siten, että jokaisessa ruudussa olisi yksi kirjain. Ruudukosta voi lukea annetun sanan pystysuoraan, vaakasuoraan tai vinottain, eli yhteensä kahdeksaan asuuntaan. Lukemisessa siis kiinnitetään alkuruutu ja suunta, eli sana ei voi kiemurrella eri suuntiin. Millaisella algoritmilla saisin laitettua sanat mahdollisimman pieneen ruudukkoon?

Netistä luin, että simuloitu jääḧdytys tai genettinen algoritmi voisi toimia tuollaisissa tilanteissa. Mutta olen vielä niin aloittelija, että en osaa ohjelmoida tuollaista. Mistä löytäisin apua ongelmaan?

Yritin ymmärtää koodia osoitteessa https://stackoverflow.com/questions/3382859/solving-a-recreational-square-packing-problem?rq=1 , 6502:n linkissä, mutta en saanut sitä muokattua ei-neliöruudukkoihin.

5000 merkkiä jäljellä

Peruuta