Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Putkaposti 12: Tietosanakirja

Antti Laaksonen [15.12.2006 22:29:48]

#

Uuden putkapostin päähenkilö on tuttu:
https://www.ohjelmointiputka.net/postit/tehtava.php?tunnus=tsk

Mahdollisia yhdistelmiä on jälleen kerran valtava määrä - kuinka etsiä niistä paras?

Pekka Karjalainen [16.12.2006 22:13:51]

#

Yritin kahdesti tarjota ratkaisua lowercase-merkeillä. Sanoi, että väärä määrä, joten vaihdoin uppercaseen ja meni läpi. Joko kämmäsin eka satsillani, tai sitten virheilmoitusta voisi parantaa. Se kun herjasi, että väärä määrä kirjaimia, vaikka oikea määrä oli (mielestäni) tarjolla: olivat vain väärän kokoisia.

Tuota vastaustani pitää kyllä parantaa. Nyt ei vaan tänä iltana hoksannut parasta tapaa...

Antti Laaksonen [16.12.2006 22:20:11]

#

Nyt tarkistus muuttaa ensi töikseen kaikki kirjaimet suuriksi, joten kirjainkoolla ei ole enää merkitystä.

Metabolix [16.12.2006 22:51:10]

#

Hassua, luulin osaavani tuon ja nähdäkseni jopa todistin ajatukseni oikeaksi. ^^ Ehkä siinä sitten on ihan fyysinen bugi jossain kohti. Täytynee jonakin toisena päivänä katsoa uudestaan.

Pekka Karjalainen [17.12.2006 10:48:33]

#

Nyt osasin kerralla vastata isoilla kirjaimilla, ja siten uutta koodia ei tarvittukaan. Rivinvaihtoja saa olla muuten kirjainjonossa, minkä ansiosta ne oikeat kirjaimet on helpompi siirtää siihen input-lootaan.

Vastaukseni tuottaja on lyhyt pätkä Haskellia. Siivoan sen tässä ja lähetän joululukemiseksi Antille. Täytyy vain sanoa, että yritinpä ensin turhan vaikealla tavalla. Ei tarvittukaan hankalaa todistusta (lieneekö edes mahdollinen) ja XX-algoritmia, kun tuttu YY-tekniikka riitti. Tuli iloinen olo kun keksin oikean tavan, joten kiitos ongelmasta. (Sensuuri toki iski noihin nimiin, ettei spoilata.)

Jään odottelemaan seuraavaa ongelmaa, joka kuulemma on tosi fiksun ja filmaattisen ihmisen kehittämä.. :-)

Chiman [02.01.2007 18:33:26]

#

Mikäli Kopeekkaa on uskominen, en ilmeisesti osaa ajatella tarpeeksi yksinkertaisesti tällä kertaa, sillä en keksinyt tehtävää ratkaisevaa algoritmia. Sen sijaan pureuduin pulmaan tekemällä pienen apuohjelman, josta tässä ei-spoilaava kuvaruutukaappaus.

Testaamalla tuolla manuaalisesti eri artikkelijakoja olen saanut tähän mennessä tulokseksi 675,457, kun paras olisi 687,807. Toki tuo klikkailu antoi ideoita algoritmiakin varten, mutta kuningasidea antaa vielä odottaa itseään.

Metabolix [02.01.2007 22:05:34]

#

Noin, tulihan se sieltä. Pieni bugi oli päässyt ensimmäiseen toteutukseen, se ei toiminutkaan aivan ajatuksen mukaan.

$ time ./tietosanakirja
***...*
687.807

real    0m0.025s
user    0m0.020s
sys     0m0.004s

Nopeahan tuo on noilla syötteillä, mutta mahtaako isommille syötteille olla jotakin tehokkaampaa tapaa? 2500 artikkelia ja 150 kirjaa näyttäisi syövän jo viitisen sekuntia tällä masiinalla.

Vastaus

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

Tietoa sivustosta