Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Putkaposti 37: Kaulaketju

Antti Laaksonen [15.02.2010 20:06:34]

#

Putkapostissa tapahtuu taas:

https://www.ohjelmointiputka.net/postit/tehtava.php?tunnus=kketju

Jokotai [15.02.2010 20:59:04]

#

Taas näitä sanalistajuttuja. ESsi mainittu :)

Metabolix [15.02.2010 22:49:51]

#

Hauska tehtävä. Nyt pitäisi enää keksiä jokin hyvä heuristiikka hakua varten, jotta saisi kaivettua hyvätkin merkkijonot esiin. ;) (Edit: Paranihan se näköjään hyvinkin yksinkertaisilla rajoituksilla, joita tiukensin käsin aina entistä paremman tuloksen jälkeen.)

Jokotai [18.02.2010 15:46:59]

#

En kyllä ymmärrä miten tämän voi matemaattisesti rakaista.

Chiman [18.02.2010 16:08:49]

#

Hyvä tehtävä. Jonkinlaisen tuloksen saa pienellä vaivalla, joten jännä ettei listalla ole useampia nimiä.

Oma keskinkertainen algoritmini pääsee puolessa minuutissa yli 50:n, mutta 60:n ylittäminen vaatii huomattavasti pidempää jauhamista.

Metabolix [18.02.2010 16:51:09]

#

Jokotai kirjoitti:

En kyllä ymmärrä miten tämän voi matemaattisesti rakaista.

Kokeilemalla kaikkia 40 merkin merkkijonoja. Toki niitä on aivan liikaa läpi käytäväksi, minkä vuoksi täytyy jollain perusteella hylätä vaihtoehdot, jotka eivät vaikuta lupaavilta. Esimerkiksi åå-alkuinen merkkijono ei ole lainkaan lupaava, koska missään sanassa ei ole kahta å-kirjainta. Niinpä haku voidaan turvallisesti lopettaa tähän. (Oikeastaan edes yksi å-kirjain ei ole kovin lupaava, koska se vaatisi koko sanan ångström, jossa taas ei ole juuri hyödyllisiä osia muihin sanoihin.) Vastaavaa logiikkaa voi soveltaa hyvin pitkälle: esimerkiksi kolmea samaa kirjainta ei kannata laittaa peräkkäin. Jos vielä käyttää sanalistaa apuna, voi todeta lisää huonoja ideoita.

Chiman kirjoitti:

Jonkinlaisen tuloksen saa pienellä vaivalla, joten jännä ettei listalla ole useampia nimiä.

Antin esimerkki sisältää jo aika monta sanaa, mikä osaltaan vähentää innostusta keksiä merkkijonoja ilman kunnollista ohjelmaa.

Chiman kirjoitti:

Oma keskinkertainen algoritmini pääsee puolessa minuutissa yli 50:n, mutta 60:n ylittäminen vaatii huomattavasti pidempää jauhamista.

Oman ohjelmani toiminta riippuu muutamasta parametrista, jotka määräävät, miten herkästi tutkittavia merkkijonoja hylätään. Eräillä parametreilla ensimmäinen 71 sanan ratkaisu löytyy 3,5 sekunnissa ja 72 sanan ratkaisu 35 sekunnissa. Yli minuuttia en yleensä ole odotellut, vaan pyrin sen sijaan optimoimaan algoritmia tai parametreja. Buginkin juuri löysin: ohjelma jätti laskematta ensimmäisestä kirjaimesta taaksepäin alkavan sanan, minkä vuoksi 72 sanan ratkaisu jäi aiemmin huomaamatta. :(

Grez [18.02.2010 18:25:27]

#

Metabolix kirjoitti:

Antin esimerkki sisältää jo aika monta sanaa, mikä osaltaan vähentää innostusta keksiä merkkijonoja ilman kunnollista ohjelmaa.

Tämä on selvästi tehtävä, jossa hyvään tulokseen pääseminen vaatii jo jonkin verran ajankäyttöä, josta syystä esimerkiksi itse en lähde tätä edes yrittämään ennen kuin vapaa-aikaa on enemmän. Edellinen putkaposti taas oli 5 minuutin rykäisy, niin ei ollut mitään väliä missä välissä sen teki.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta