Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Putkaposti 36: Tunnelmavalaistus

Sivun loppuun

Antti Laaksonen [06.02.2010 13:20:31]

#

Uusi putkaposti on Otto Ebelingin käsialaa:

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

Grez [06.02.2010 13:29:07]

#

Käsittääkseni tähän on valmis algoritmi, jolla pääsee 1023 kytkimen kääntöön.. .. no pääsimpä kerrankin ekaksi :D eikä tarvinnut edes kaivaa sitä valmista algoa.

Sinänsähän tuossa tehtävänannossa kun sanotaan, että homma "alkaa jännityksellisissä tunnelmissa huoneen ollessa pimeänä", niin eihän tuolla ole mitään merkitystä. Eli mikä tahansa toimiva vastaus toimii sellaisenaan mille tahansa alkutilanteelle.

Metabolix [06.02.2010 13:53:20]

#

Meni aikaa hukkaan, kun tuli Pythonilla tuli jokin typerä koodausvirhe (jälkiviisaus: näköjään 2** puuttui). Tein sitten Perlillä, pituutta tuli huimat viisi lyhykäistä riviä (sis. sulkeva aaltosulku). Fääaaöyyvfrg ynhfrxxrrg bing xägrivä.(rot13)

Vanhat lukiomatematiikan menetelmät (tällä kertaa vaqhxgvb(rot13)) ovat usein avuksi. :)

Grez kirjoitti:

Sinänsähän tuossa tehtävänannossa kun sanotaan, että homma "alkaa jännityksellisissä tunnelmissa huoneen ollessa pimeänä", niin eihän tuolla ole mitään merkitystä.

Ei toki tehtävän kannalta, mutta esimerkkitapaus on helpompi antaa.

Grez [06.02.2010 14:28:46]

#

Metabolix kirjoitti:

Fääaaöyyvfrg ynhfrxxrrg bing xägrivä.

Miten ihmeessä noista tässä tapauksessa oli hyötyä?

Jokotai [06.02.2010 14:32:27]

#

;_; ra bfnn yhxvbzngrzngvvxxnn(rot13)

Metabolix [06.02.2010 14:38:15]

#

Grez kirjoitti:

Metabolix kirjoitti:

Fääaaöyyvfrg ynhfrxxrrg bing xägrivä.

Miten ihmeessä noista tässä tapauksessa oli hyötyä?

Tässä on ratkaisuni, tunnistanet yleisesti käytetyn koodauksen.

IyEvdXNyL2Jpbi9wZXJsCiRfID0gIiI7
CmZvciAoJGkgPSAxMDsgJGkgPiAwOyAt
LSRpKSB7CglzL158KD88PVxuKS8kaVxu
L2c7Cn0KcHJpbnQgJF87Cg==

jlaire [06.02.2010 14:40:31]

#

Lukusarjan saa tulostettua yllättävän yksinkertaisesti rekursiolla. Toteutus mahtuu helposti yhdelle <80-merkkiselle riville sopivalla kielellä.

Grez [06.02.2010 14:41:15]

#

No joo, tarkoitin lähinnä, että miten niistä oli hyötyä.. Helpommallahan tuosta olisit IMO selvinnyt ilman niitä..

Ja en kyllä ymmärrä tuota rekursiotakaan. PHP:llä 52 tavua ilman rekursiota. Tai 46, jos ei välitä mahdollisesta warningista.

jlaire [06.02.2010 14:50:55]

#

Oma ideani:

bWFpbiA9IGYgMTAKCmYgMSA9IHByaW50IDEKZiBuID0gZiAobi0xKSA+PiBwcmludCBuID4+IGYg
KG4tMSkK

Pituus 49 merkkiä jos poistaa turhat välit. Sen voi tietysti toteuttaa silmukallakin, mutta rekursio on minusta selkeämpi.

Jokotai [06.02.2010 14:56:26]

#

Metabolix kirjoitti:

Tässä on ratkaisuni, tunnistanet yleisesti käytetyn koodauksen.

Ra!(rot13)

Horny The Horrible [06.02.2010 15:01:37]

#

Saanen kysyä että mitä tämä on?

Grez [06.02.2010 15:08:57]

#

Keskustelua..?

Jostain syystä tuosta tuli mieleen eräs internet-meemi.

Jokotai kirjoitti:

Ra!(rot13)

Onfr<xhhfarywä>(rot13)

Horny The Horrible [06.02.2010 15:11:59]

#

Grez kirjoitti:

Keskustelua..?

Mitä nämä asdf1234grlojkt... jutut ovat? jos täällä ei olisi moderaattoreita, kuvittelisin vandalismiksi.

Grez [06.02.2010 15:13:52]

#

No voisit kysyä yksiselitteisemmin. Ne on rot13-koodattuja tekstejä..

Täällä on muodostunut käytännöksi että jos laitetaan ratkaisuja tehtäviin, niin ei laiteta niitä selväkielisinä, jotta ei vahingossa anna ratkaisua sellaiselle, joka haluaa vielä itse yrittää ratkaisua.

Horny The Horrible [06.02.2010 15:16:11]

#

Veikkaisin rot13:taa joko kieleksi tai sitten valheeksi. Varmaan kieli. LOL

Metabolix [06.02.2010 15:16:59]

#

funktio: Näppärää, en ajatellut tehtävää tuolta kannalta.

Jokotai: Et ole myöskään ratkaissut tehtävää, joten sinun ei kuulukaan päästä lukemaan ratkaisuja. ;) Mutta kyseessä on joka tapauksessa Base64-enkoodaus (purettavissa täällä).

Horny The Horrible: Tehtävän ratkaisseet ovat perinteisesti keskusteelleet ratkaisuistaan rot13-koodatuilla viesteillä (kirjaimet a-m vaihdetaan kirjaimiin n-z ja päinvastoin), jotta jokainen saisi itse keksiä ratkaisun eikä vahingossa voisi lukea muiden ratkaisuja. Koska rot13 ei salaa erikoismerkkejä, se ei sovellu kovin hyvin ohjelmakoodin lähettämiseen, joten käytin toista yleistä enkoodausta, jonka moni tunnistaa ja osaa purkaa. (On joka tapauksessa tyhmää kopioida toisen ratkaisu; sillä vain todistaa olevansa liian huono ratkaisemaan tehtävää itse.)

Horny The Horrible [06.02.2010 16:47:02]

#

Nyt ymmärrän. ;D

os [06.02.2010 17:38:53]

#

Lisää aiheesta (alkuperäinen tehtävä) täällä:

uggc://ra.jvxvcrqvn.bet/jvxv/Tenl_pbqr

jo123 [06.02.2010 19:30:05]

#

Pitäisi tehdä putkaan "vastaus"-kooditagi, jonka sisällön saa näkyviin vaan halutessaan. >:D

Milo [06.02.2010 20:32:15]

#

Ei vastauksia tarvitsisi julkisesti jakaa ollenkaan. Mielummin private keskustelu niille jotka ovat ratkaisseet pulman haetulla vastauksella.

jo123 [06.02.2010 20:36:13]

#

Milo kirjoitti:

Ei vastauksia tarvitsisi julkisesti jakaa ollenkaan. Mielummin private keskustelu niille jotka ovat ratkaisseet pulman haetulla vastauksella.

Tuo olisi tosiaan parempi ratkaisu...

Macro [06.02.2010 20:51:33]

#

TWlud­XN0YSB­la­SBr­YW5u­YXR0YWl­za­SBq­YWth­YSB2YXN0YXVrc2lh­IHTk5Gxs5Cw­ga3Vr­YSB2YWFu
IHZva­SBz­ZWx2a­XR05OQ­ga29v­ZGlu­IGph­IHNh­YWRh­IHTke­WRld­CBwa­XN0ZWV0IHR­la­HTkdu­TkbiA9
KQ==(Base-64)

Jokotai [07.02.2010 11:11:19]

#

Perinteisesti ei näissä keskusteluissa ole vilauteltu koodeja vaan ideoita :O

Metabolix [07.02.2010 15:29:27]

#

Tässä on vielä yksi idea: inyzvva infgnhxfra ibv xvewbvggnn grxfgvrqvgbevyyn nvanxva xhhqryynxlzzraryyäarywäyyä aäccävzracnvanyyhxfryyn (fvf. pbageby inyvaabvffn wn xbcvbvaarvffn). Onnistuuko joku vielä optimoimaan tätä (yleispätevästi, ei millään yksittäisellä välineellä)?

Grez [07.02.2010 15:48:29]

#

Varmaan joku emacs- tai vi-guru tms. hoittaa homman aika pienellä.

tkok [08.02.2010 13:26:49]

#

Miten olisi oma keskustelu johon pääsisivät vain vastauksen tehtävään antaneet?

Metabolix [08.02.2010 13:35:40]

#

Mitä vikaa rot13-keskustelussa on? Tuskin sitä kukaan onnistuu vahingossa lukemaan, ja toisten ratkaisuja kopioimalla ei saavuta yhtään mitään. Valikoituja paloja lukemalla voi myös oppia paljon ja keksiä jonain päivänä itsekin ratkaisun. Esimerkiksi ensimmäisessä viestissäni on vinkki, joka ei paljasta ratkaisua mutta voi johtaa oikeille jäljille.

Ongelmana erillisessä keskustelussa on, että kaikkiin tehtäviin ei tunneta parasta ratkaisua. Kenellä olisi oikeus keskustella? Suljetaanko aiemmat keskustelijat pois, jos joku lähettääkin tehtävään vielä paremman ratkaisun? Kaikkia vastauksen lähettäneitä ei varmasti voi päästää mukaan, koska useimpiin tehtäviin on jokin triviaali ratkaisu, jolla saa nimensä listalle, vaikkei pisteitä paljon tulisikaan.

Chiman [08.02.2010 15:24:02]

#

Ainakin itse saan lisämotivaatiota Putkapostien ratkaisemiseen vertaamalla omaa tasoani muihin pistelistan avulla. Jos valmiita ratkaisukoodeja esitetään julkisesti, ilmaisia pisteitä on tarjolla kaikille halukkaille ja tulostaulu menettää merkitystään.

Aika monta vanhaa tehtävää olen ratkaissut viime kuukausina, kun olen pyrkinyt parantamaan sijoitustani. Terävin huippu tuntuu olevan taitojeni ulottumattomissa, joten hatunnosto paremmille :)

jlaire [08.02.2010 15:34:43]

#

Olen samaa mieltä siitä, että valmiita ratkaisuja ei yleensä kannata postata keskusteluun. Tässä se ei kuitenkaan minusta haittaa, koska kyseessä on todella tunnettu ongelma johon löytyy netistä paljon tietoa ja ihan valmiita ratkaisujakin, jos joku välttämättä haluaa "huijata".

Grez [08.02.2010 20:20:16]

#

Tästä voisi tehdä vaikeutetun alitehtävän, jossa Uolevin pitäisi saada kytkimet kulumaan mahdollisimman tasaisesti. Eli siinä täytyisi saada homma 1023 vaihdolla tehtyä, mutta pisteet tulisi sen mukaan, mikä on eniten "kuluneen" kytkimen kytkentämäärä. Näissä tyypillisissä vastauksissahan se on huonoin mahdollinen eli 512, ja ainakaan 103 parempaa ei voi saada. En tiedä onko 103:kaan käytännössä mahdollinen.

Ihan äkkisesti tulee mieleen helppojakin keinoja joilla luvun saisi alle 200:n.

tkok [09.02.2010 02:27:10]

#

Metabolix kirjoitti:

Mitä vikaa rot13-keskustelussa on? Tuskin sitä kukaan onnistuu vahingossa lukemaan, ja toisten ratkaisuja kopioimalla ei saavuta yhtään mitään.

Ei toki vahingossa, mutta jos on kiinnostunut yleisistä mielipiteistä eikä ratkaisuista, on turhien rot13 viestien selailu rasittavaa. Heittelin vaan ajatuksia. Kivahyvä näinkin.

Metabolix [10.02.2010 18:04:29]

#

Grez kirjoitti:

Tästä voisi tehdä vaikeutetun alitehtävän, jossa Uolevin pitäisi saada kytkimet kulumaan mahdollisimman tasaisesti.

Hyvä tehtävä. Kun funktion ratkaisuun liittää yksinkertaisen ahneen tarkituksen, yhtä kytkintä käytetään enintään 127 kertaa. Parempi ratkaisu vaatisi enemmän ajattelua. :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta