Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Putkaan helpompia tehtäviä

Sivun loppuun

Kentti [04.09.2006 09:22:42]

#

Tässä kun olen tutkaillut välillä tuota Putkapostia ja kilpailuja, ovat ne melko haastavia (nykyinen kilpailu ei ehkä ole niin vaikea kuin putkapostit, mutta kuitenkin..).

Olisi mukava, jos tänne tulisi jotain putkapostin tapaista, mutta helpompaa, jotta useampi voisi osallistua niihin..

Öh, sainkohan selitettyä tarpeeksi selvästi?

Antti Laaksonen [04.09.2006 10:50:21]

#

Putkapostin tehtävät ovat tarkoituksella vaikeita, jotta niistä riittää haastetta taitavimmillekin käyttäjille.

Hyvä paikka ohjelmoinnin opiskeluun on perusteista lähtevä USACO (englanniksi):
http://train.usaco.org/usacogate

Myös Ohjelmointiputkaan on tulossa helpompia tehtäviä muodossa tai toisessa, kun niille on selvästi tarvetta. Tarkoituksenani on myös kirjoittaa ohjelmointitehtävien ratkaisua opettava "Datatähden käsikirja".

Kentti [04.09.2006 15:04:12]

#

Juuri nuo Putkapostit ovat usein helpompia ohjelmoida kuin keksiä, miten sen tekee ☺

Mutta mielestäni on todellakin hyvä idea, että tännekkin tulee helpompia tehtäviä; jotain niillekin, jotka eivät ole käyneet peruskoulua vielä läpi (mukaanlukien minä)

temu92 [04.09.2006 16:55:53]

#

Helpommat tehtävät kiinnostaa muakin, nää putkapostit on vähän hankalia

Pekka Karjalainen [07.09.2006 15:10:45]

#

Voisitteko kertoa, mikä on helppo mutta kiinnostava tehtävä, jollaisia haluaisitte nähdä? Tietenkin jos on oikein hyvä, kannattaa kertoa yksityisesti Antille.

Tässä pari ideaa lonkalta. Tarkoitus on saada teidät kertomaan parempia ideoita :-)

Saat kaksiulotteisen taulukon tiedostossa, jossa on 10 riviä ja 10 saraketta. Siinä on vain nollia ja ykkösiä merkkeinä. Etsi suurin vierekkäisten ykkösten muodostama neliö. Anna sen koordinaatit, niin että vasen ylänurkka on 1,1 ja numerot kasvavat oikealla ja alas.


0 1 0 0 1 1 0 0 1 0
0 1 1 0 1 1 0 0 0 1
jne.

Tuossa on neljän ykkösen muodosta neliö keskellä.

Onko paha? Tylsä?

Tee ohjelma, joka tulostaa merkkigrafiikkaspiraalin # ja . -merkeillä. Taulukon koko annetaan kahtena positiivisena lukuna ja spiraalin pitää lähteä vasemmasta yläkulmasta yläriviä pitkin ja sen tulee kiertyä sisällepäin niin, ettei se koske itseään, mutta menee mahdollisimman tiheään ("pakatuksi") ja pitkälle. Esimerkki:


5, 5 ->
# # # # #
. . . . #
# # # . #
# . . . #
# # # # #

Tämä on vähän huono, koska oikean ratkaisu voi itse rakentaa käsin. Tylsäkin lienee. Ei kelpaa?

Vielä yksi:

Tee ohjelma, joka tulostaa positiivisen kokonaisluvun nimen selvällä suomen kielellä, esimerkiksi 548 -> "viisisataaneljäkymmentäkahdeksan". Älä käytä sanaa "ja". Käytä sitä etsimään väliltä 1..1000000 (miljoona) kaikki luvut, joiden suomenkielisessä nimessä on täsmälleen 5 a-kirjainta. (Miljoona ja yksi eivät täytä ehtoa.)

Tempaisin lonkalta tuon 5 a:ta. Joku toinen ehto voi olla parempi. Lisätehtävä: etsi hyvä ehto.

No, ei näitä oikeasti tarvi tehdä. Saa pohtia kuitenkin. Nämä ovat nyt tällaisia. Yhdellä istumalla keksin tai lainasin jostain. Vaikeitahan noita on keksiä hyviä.

Lebe80 [07.09.2006 15:37:16]

#

Tee ohjelma joka tulostaa 100 riviä "Hello World!" tekstiä ruudulle.

Kentti [07.09.2006 17:17:43]

#

Tuo olis nyt ehkä jo vähän turhan helppo, Lebe80, osaisin tehdä sen vaikka C++, vaikka olen siinä kutakuinkin juuri tuolla Hello World -tasolla. Sama taittuisi myös PHP:llä ja JS:llä vähän turhankin helposti :0

juha127 [07.09.2006 18:30:35]

#

Kopeekka kirjoitti:

Vielä yksi:

Tee ohjelma, joka tulostaa positiivisen kokonaisluvun nimen selvällä suomen kielellä, esimerkiksi 548 -> "viisisataaneljäkymmentäkahdeksan". Älä käytä sanaa "ja". Käytä sitä etsimään väliltä 1..1000000 (miljoona) kaikki luvut, joiden suomenkielisessä nimessä on täsmälleen 5 a-kirjainta. (Miljoona ja yksi eivät täytä ehtoa.)

Tempaisin lonkalta tuon 5 a:ta. Joku toinen ehto voi olla parempi. Lisätehtävä: etsi hyvä ehto.

Tuo taisi saada inspiraatiotani takaisin, jatkamaan ohjelmaa joka kertoo luvun sanoina olen päässyt siinä vasta 0-99999

moptim [07.09.2006 19:10:55]

#

Lebe80:n ohjelma menisi minulla vaikkapa JavaScriptillä, C++:stä puhumattakaan!
EDIT:Ja vaikka...vaikka minä voisin yrittää järjestää näitä tehtäviä!

kayttaja-4976 [07.09.2006 19:26:51]

#

Minä en itse ole osallistunut putkaposteihin. Juuri niin. Ovat liian vaikeita. Varmaan pitäisi tämä yläastekin käydä läpi ennen kuin voin yrittää. Silti jostain kumman syystä olen sitä mieltä että jos tehtäviä helpotetaan, taitajat tylsistyvät ja aloittelijoilta menee vuorokausirytmi sekaisin.

moptim [07.09.2006 19:27:50]

#

putkapostit on kaamean vaikeita

Pekka Karjalainen [07.09.2006 20:32:55]

#

Voisi myös tehdä eri tasoisia ongelmia Putkaposteihin. Esimerkiksi tämän kertainen olisi alkanut sillä, että olisi pitänyt luoda yksi toimiva taikaneliö, vaikkapa lisäehtona se, että se alkaa luvulla 7, jotta ei voisi vain kopioida niitä paria siitä.

Kakkostehtävänä olisi ollut niiden laskeminen ja kolmantena tämä nyt annettu. Neljänneksi olisi voinut keksiä jotain todella kieroa.

Siten jokainen voisi valita taitojensa mukaisen haasteen. Aina voisi aloittaa helpommasta ja jatkaa eteenpäin niin pitkälle kuin pääsee ilman liikaa stressiä.

Tietenkin on vaikea tehdä näin monitasoisia ongelmia. Siinäpä onkin sitten lukijoille motivaatiota. Jos tulee hyvä ongelma mieleen, voitte ehdottaa sitä. Salaisuutena se pysyy, jos ehdotatte Antille suoraan. Tietenkin on Antista kiinni, haluaako hän tällaisia ongelmaideoita saada (vai onko tarpeeksi omasta takaa?). Niin että älkää nyt ainakaan satapäin lähettäkö minun kehotukseni takia :-)

Yleisiä ehdotuksia ongelmien tyypistä ja tasosta voi tietenkin kirjoitella tänne. Sitä yritin tuossa viritellä itsekin.

Hmm, tänä syksynä pitäisi opetella tilastotieteen kurssin yhteydessä R-kieltä. Raportoin joskus edistyksestä. Jospa sieltä keksii jonkun esimerkkiohjelman, jossa ei niin ole häiriöksi asti sitä tilastotiedettä itseään...

Antti Laaksonen [07.09.2006 21:12:58]

#

Lukujen kirjoitus suomeksi on hyvä perinteinen tehtävä.

Toinen hyvä on laskun laskeminen, esim. (5 + 3) * 4 + 2.

Yhdistelmien muodostamista:

1. Kirjoita ohjelma, joka muodostaa kaikki kirjainten A - ? joukot. Esim. jos kirjaimet ovat A - D, joukot ovat A, B, C, D, AB, AC, AD, BC, BD, CD, ABC, ABD, ACD, BCD, ABCD ja tyhjä joukko. Millä kaavalla voi laskea suoraan joukkojen määrän?

2. Kirjoita ohjelma, joka muodostaa kaikki kirjainten A - ? järjestykset. Esim. jos kirjaimet ovat A - D, järjestykset ovat ABCD, ABDC, ACBD, ACDB, ADBC, ADCB, BACD, BADC, BCAD, BCDA, BDAC, BDCA, CABD, CADB, CBAD, CBDA, CDAB, CDBA, DABC, DACB, DBAC, DBCA, DCAB ja DCBA. Millä kaavalla voi laskea suoraan järjestysten määrän?

3. Kuinka monta hevosta, lähettiä, tornia ja kuningatarta shakkilaudalle voidaan sijoittaa niin, että ne eivät uhkaa toisiaan? Laske kussakin tapauksessa erilaisten sijoitustapojen määrä, kun nappuloiden määrä on suurin mahdollinen.

Tässä on vielä hauska tehtävä:

Aleksis Kiven Seitsemän veljestä on saatavilla tekstimuodossa osoitteessa http://www.gutenberg.org/etext/11940. Muuta kirjan teksti sellaiseen muotoon, että rivinvaihdot, välilyönnit ja välimerkit on poistettu, siis jäljellä on pelkät kirjaimet. Muuta vielä kaikki kirjaimet suuriksi tai pieniksi. Etsi tästä tekstistä pisin palindromi (joukko kirjaimia, jotka voidaan lukea alusta loppuun tai lopusta alkuun niin, että tulos on sama).

- -

Ohjelmointiputkaan saa ehdottomasti lähettää kaikentasoisia ohjelmointitehtäviä. Putkapostin tehtäviä voi lähettää minulle suoraan sähköpostilla, mutta muuten tehtävät sopivat hyvin keskusteluun. Silloin tehtävää voi pohtia koko keskusteluväen kesken. Putkapostin tehtävien vaikeutta ei muuten kannata pelätä. Melkein aina tehtävään pystyy keksimään jonkinlaisen ratkaisun, vaikka ei olisikaan ohjelmointinero.

Kopeekka kirjoitti:

Voisi myös tehdä eri tasoisia ongelmia Putkaposteihin.

Tämä on tavoitteena siinä, että tehtävään kuuluu joukko erikokoisia testitapauksia, joista osa on ratkaistavissa yksinkertaisella ohjelmalla ja osan ratkaisu vaatii syvällisempää pohtimista. Kieltämättä esim. tähän taikaneliötehtävään olisi voinut suunnitella monta erilaista osuutta. Haaveenani on myös joskus saada aikaan joidenkin ulkomaisten sivustojen kaltainen järjestelmä, jossa ratkaisun voi lähettää tarkastettavaksi lähdekoodimuodossa. Silloin ratkaisujen nopeuksia voisi vertailla kunnolla.

Kentti [07.09.2006 21:33:38]

#

Tuo Aleksis Kivi juttu kuullosti mielenkiintoiselta.

Mietintää saattaa tosin tuo palindromikohta tuottaa hieman, mutta muun pitäis olla helppoa.

Blaze [07.09.2006 23:28:14]

#

Eritasoiset tehtävät Putkapostiin on kyllä mitä parahin idea. Kannustaa algoritmipuolella tyhmempiäkin (*krhm*minä*krhm*) osallistumaan.

Merri [08.09.2006 00:50:59]

#

Tämä on oikeasti mukava projekti: Sudokun ratkaisija. Ongelmahan on tällainen: on yhdeksän numeroa, jotka täytyy asetella 9 x 9 taulukkoon siten, että jokaisella pysty- ja vaakarivillä, sekä yhdeksän numeron kennossa esiintyy kukin numero vain kerran. Eikö kuulostakin helpolta?

Tosiasiassa eksperteillä on edelleen ongelmia löytää yhtenäistä kaavaa/algoritmiä, joka osaa ratkaista jokaisen olemassa olevan sudokun. Myös tehokkuus on ongelma: käytännössä laskentanopeudesta sekä oikeiden vastauksien määrästä saisi ainoat kriteerit kilpailua varten. Kategorioita voisi oikeastaan ollakin kaksi: nopein, sekä eniten oikeita vastauksia ilman backtrackkaamista (ts. ilman numeroiden kokeilua ja paluuta aiempaan tilanteeseen, mikäli valittu numero olikin väärä).

Minulta taitaa edelleen löytyä muutama tuhat sudokua koneelta kohtalaisen helpossa tiedostomuodossa.

Pekka Karjalainen [08.09.2006 16:18:03]

#

Minimaalisen sudokun ongelmaa ei ole vielä ratkaistu. Tiedetään, että on olemassa paljon sudokuja, joissa on 17 ohjetta ja yksikäsitteinen ratkaisu, mutta 16:n vihjeen sudokuista ei tiedetä mitään. Voi olla, että niitä ei ole, mutta se pitäisi todistaa, että tieto olisi varmaa.

Toisaalta joku voi joku päivä löytää sellaisen. Ideana näissä on siis, että tehtävän voi ratkaista vain yhdellä tavalla.

http://www.csse.uwa.edu.au/~gordon/sudokumin.php

Tuolta saa myös paljon 17:n vihjeen tehtäviä, jotka ovat useat aika vaikeita.

Helpommista ongelmista pääsee siis aina vaikeampiin, kun käyttää mielikuvitustaan. Toisaalta jotkut kilpailevat minimaalisen ratkojan kehittämisestä. Muistaakseni joku aika sitten voitolla oli Ruby ja noin 150:n tavun mittainen ratkaisija.

En aio jatkaa keskustelun tätä rönsyä enempää. Sudokunratkaisija on aika vaikea tehtävä kuitenkin edellisiin verrattuna.

LaNu [08.09.2006 17:07:39]

#

Kentti kirjoitti:

Tuo Aleksis Kivi juttu kuullosti mielenkiintoiselta.

Mietintää saattaa tosin tuo palindromikohta tuottaa hieman, mutta muun pitäis olla helppoa.

Kieltämättä tämä tehtävä vaikuttaa aika vinhalta :P Palindromin etsintä itsessään ei kai ole vaikeaa (ainakaan nopeasti mietittynä). Jänskäksi tuossa menee vain tuo kohtalaisen laaja materiaali, jollaista ei ole tullut kyllä käsiteltyä. Voi olla, että pariin kertaan saisin prosessia olla tappamassa, ennenkö läpi menisi :D

Merri [08.09.2006 17:09:24]

#

Eräistä syistä testaaminen suoritetaankin yleensä ensin pienemmällä materiaalilla ja siirrytään isompaan vasta kun pienemmästä pääsee ongelmitta lävitse :)

Kentti [08.09.2006 17:36:51]

#

En kyllä näe mitään syytä, miksei voisi jotain ohjelmaa suoraan tuolla Aleksis kivellä kokeilla. Sama ohjelma siihenkin menisi kuin pienempään tiedostoon..

Ainoastaan suoritusajassa saattaisi (viimeistään hitaammilla koneilla) olla hermoja raastavia eroja.

Deewiant [08.09.2006 18:33:24]

#

Merri kirjoitti:

Tosiasiassa eksperteillä on edelleen ongelmia löytää yhtenäistä kaavaa/algoritmiä, joka osaa ratkaista jokaisen olemassa olevan sudokun. Myös tehokkuus on ongelma: käytännössä laskentanopeudesta sekä oikeiden vastauksien määrästä saisi ainoat kriteerit kilpailua varten. Kategorioita voisi oikeastaan ollakin kaksi: nopein, sekä eniten oikeita vastauksia ilman backtrackkaamista (ts. ilman numeroiden kokeilua ja paluuta aiempaan tilanteeseen, mikäli valittu numero olikin väärä).

Käsittääkseni Dancing Links -algoritmi (selitys siitä, miten tuo pätee Sudokuun) ratkaisee minkä tahansa validin Sudokun, ja pirun nopeasti.

Sellaisen ratkaisijan tekeminen, joka käyttää vain sellaisia tekniikoita, joita ihmisetkin käyttävät, on mielestäni erittäin kiinnostavaa ja hauskaa puuhaa.

Kunhan saan oman solverini versioon 3.0.0 - tällä haavaa tehtävänä lähinnä koodin täydellinen uudelleenstrukturointi: se on tällä hetkellä osin suhteellisen spagettia, josta suurin osa yhdessä moduulissa -, julkaissen sen. Aikaa mennee kuitenkin jonkin aikaa, intti kun rajoittaa ohjelmointimahdollisuuksia. Lisäksi on tämä kilpailu, johon pitäisi osallistua - ja sen aikana on vain kaksi viikonloppulomaa. </whine>

Merri [09.09.2006 17:54:21]

#

Wikipediassa heti ensimmäisellä rivillä: "... is a recursive, nondeterministic, depth-first, brute-force algorithm."

Kuvauksen perusteella kyseessä on "vain" hyvin optimaalinen brute force -tekniikka; tuon toteuttaminen onnistuu tehokilpailussa, mutta koska brute force on oikeastaan sama asia kuin backtrackkaaminen, niin se ei käy tuohon toiseen kisaan. Brute forcelle on myös normaalia olla rekursiivinen, joten senkin voisi asettaa kiellettyjen listalle. Käytännössä siis Dancing Links on juuri sellainen algoritmi, jota en tarkoittanut, koska se pohjautuu "arvailuun" :)

"Oikeat" sudokuohjelmoijat ovat varsin... hmm... mielenkiintoisia tapauksia. He ovat ehkäpä hieman elitistisiä. Siellä on joukossa sellaisia, joilla on todella paljon älyä algoritmien ymmärtämisessä ja he sitten rankkaavat onko jokin tietty tapa "soveliasta" vaiko ei. Heitän arvauksen että he eivät rankkaa Dancing Links -algoritmiä tällaiseksi, vaikka varmasti pätevä algoritmi onkin. He rankkaavat jotenkin, kuuluuko jokin algoritmi arvaajakastiin vaiko logiikkakastiin.

Ehkä tämän takia sudokumaailmaan tutustuminen ohjelmoinnin näkökulmasta onkin hyvä hoitaa sellaisena reiluhkon kuukauden projektina, sen pidempään siellä on vähän vaikea viihtyä. Minulla kiinnostus kesti parisen kuukautta, sitten kyllästyin.


En muuten ole koskaan ratkaissut ainuttakaan sudokua. Olen kyllä koodannut varsin nopean ratkaisijan (voitin kilpailun), mutta en ole innostunut ratkomaan niitä itse. Uh... ja nyt voisi ehkä jo harkita ihan omaa topikkiaan sudokulle, kun tätä asiaa on jo useamman viestin verran tullut.

Pöytälamppu [10.09.2006 10:19:56]

#

Antti Laaksonen kirjoitti:

Aleksis Kiven Seitsemän veljestä on saatavilla tekstimuodossa osoitteessa http://www.gutenberg.org/etext/11940. Muuta kirjan teksti sellaiseen muotoon, että rivinvaihdot, välilyönnit ja välimerkit on poistettu, siis jäljellä on pelkät kirjaimet. Muuta vielä kaikki kirjaimet suuriksi tai pieniksi. Etsi tästä tekstistä pisin palindromi (joukko kirjaimia, jotka voidaan lukea alusta loppuun tai lopusta alkuun niin, että tulos on sama).

Oma ohjelmani selvitti pisimmäksi palindromiksi "allaralla rallaralla rallaralla", joka löytyy kolmannesta luvusta.

lainaus:

JUHANI.
Hyvä! Ja kuullelkoot nyt toiset kuinka hongisto remuaa.--Nyt pojat!
Mitä minä huolin, veitikka nuori,
Jolla on rinta kuin Tunturi-vuori?
Frallaralla rallaralla rallarallalaa!
Heinolan pokkojen uhkeaan joukkoon

Pekka Karjalainen [12.09.2006 14:35:07]

#

Vähän aihetta sivuten kyselen.

Monestiko voi yhteen putkapostiin lähettää vastauksen? Minulla on nyt kahdesti käynyt niin käsittämättömän hyvä tuuri, että vastaus on mennyt kerralla läpi, vaikka onkin randomilla generoitu (okei, vähän muutakin on kuin randomia).

Tuli vain mieleen, että jos jatkossa jossakin kämmää, niin saako uusia?

Lisäksi vanhemmat putkapostit oli käsittämättömän hankala löytää. Se otsikko ei näyttänyt minusta linkiltä, enkä tiedä mitä muutakaan kautta niihin pääsisi. Voitaisiinko lisätä jonnekin sopivaan paikkaan erillinen linkki, jossa lukee "Vanhemmat putkapostit"?

No, tuo korttiongelma ei varmasti ole niin helppo niille, jotka eivät tunne permutaatioiden sykliesityksiä. Ne kun taas tuntee, niin se on tosi helppo. Odotinkin jo ahdistuneena, milloinka se algebran opiskelu alkaa oikein kannattaa. (Nytpä se.)

Chiman [12.09.2006 15:06:25]

#

Kopeekka kirjoitti:

No, tuo korttiongelma ei varmasti ole niin helppo niille, jotka eivät tunne permutaatioiden sykliesityksiä. Ne kun taas tuntee, niin se on tosi helppo.

Tuo oli outo termi, mutta googletuksen perusteella käytin samaa periaatetta omassa ratkaisussani. Ihan heittämällä se ei syntynyt vaan hetken pohtimisella.

Vastauksia voi lähettää yhteen Putkapostiin riittävän monta kertaa. (Bruteforce-lähetys ei tietty liene suotavaa :)

Antti Laaksonen [12.09.2006 15:15:57]

#

Tehtävään voi lähettää vastauksen monta kertaa, ja paras vastaus jää näkyviin.

Nyt vanhempiin tehtäviin pääsee käsiksi helpommin.

Kentti [12.09.2006 18:59:27]

#

Pieni offtopic, mutta kuitenkin.

Voisi tuonne ylös "linkkilistaan" laittaa linkkejä vähän runsaammin näille putkan eri sivuille. Esimerkiksi juuri tuohon Putkapostiin ja Ohjelmointihakemistoon (https://www.ohjelmointiputka.net/hak/). Edelliseen voi olla melko hankala löytää, ellei etsi. Itse löysin sen sattumalta.

Tilan kanssa tuskin olisi ongelmia, sillä tuollahan sitä näyttää olevan tarpeeksi; tilaa on, vaikka katsoisi pienelläkin näytöllä.

moptim [12.09.2006 19:44:20]

#

äh, minun mielestä hakemisto on aika pystyyn kuollut. se voisi myös olla wiki.

Pekka Karjalainen [13.09.2006 16:57:19]

#

Chiman kirjoitti:

(sykleistä oli puhe)
Tuo oli outo termi, mutta googletuksen perusteella käytin samaa periaatetta omassa ratkaisussani. Ihan heittämällä se ei syntynyt vaan hetken pohtimisella.

Aika hyvin minusta, jos itse keksit miten käyttää niitä! En minä olisi osannut, ennen kuin kurssilla opin.

Tässäpä on linkki vaikeaan matemaattiseen ongelmaan. Tiedosto on lyhyt PDF ja siinä on myös vastaukset yhteensä seitsemään esitettyyn ongelmaan. Yksi niistä liittyy näihin sykleihin aika läheisesti, nimittäin tuo eka. Vaan älkää heti luntatko...

Jos sen keksit "hetken pohtimiselle", nostan hattua :-)

(Kehtaan laittaa linkin, koska siinä on vastaukset. Muuten menisi yöunet joltakin kuitenkin. Englanniksi se on tietenkin.)

http://www.math.dartmouth.edu/~pw/solutions.pdf

(P.S. Hyvä lisä se linkki putkapostisivulla.)

Antti Laaksonen [13.09.2006 21:19:56]

#

Tehtävät ovat kiinnostavia! Nytpä riittää miettimistä.

Jos tiedät (tai joku muu tietää) kolmosen vastauksen, niin voiko "non-trivial" tieto olla esim., että lukumäärä ei ole jaollinen 19:llä?

Gwaur [13.09.2006 22:49:37]

#

Tässä on putkiksille helpompi tehtävä:

JAG PROGRAMMERAR GÄRNA

FooBat [13.09.2006 22:59:14]

#

Täällähän aletaan puhua oikein kieliä.

Aika paha spoileri muuten tuossa viimeisimmän viestin näyttävässä laatikossa. Se paljastaa hirsipuut selkokielisinä :)

Pekka Karjalainen [14.09.2006 14:55:52]

#

Antti:

En oikein ymmärrä näitä "hän tietää että tiedän että hän tietää" -tehtäviä, joten en osaa sanoa. Ymmärrän vastauksen nähtyäni jotenkin sen, miten siinä pitäisi ajatella, mutta minusta siinä oletaan ihmisten ajattelevan niin oudosti, että tehtävä ei vaikuta mielekkäältä.

Käsittääkseni se jaottomuus on ei-triviaali tieto, jos kylässä periaatteessa voisi olla ainakin 19 täplää (siis on ainakin 19 asukasta), vaikka asukkaat näkisivätkin käytännössä, että oikea määrä ei ole lähelläkään 19:n monikertaa. Näin esitettynä väite tuntuu ristiriitaiselta, enkä yksinkertaisesti osaa selvittää tehtävän perusoletuksia (miten ajatellaan kyläläisten ajattelevan kyläläisten ajattelusta) niin hyvin, että voisin selittää tämän.

Käytännössä näkeminen tarkoittaa sitä, että kyläläiset tietävät täplien määrästä aika paljon, kun laskevat muiden otsista siniset täplät. Tämä suoran tiedon lisäksi tehtävässä käsitellään epäsuoraa tietoa, eli ajattelua muiden ajattelusta (ja ajattelua siitä jne...)

Tämä on vähän kuin se tennistehtävä. En tunne pelin sääntöjä, mutta on hauska katsella, kun muut kiistelevät sen hienouksista :-)

Chiman [15.09.2006 16:46:11]

#

Vastaanpa vielä tähän, ettei jää juttu kesken.

Kopeekka kirjoitti:

Aika hyvin minusta, jos itse keksit miten käyttää niitä! En minä olisi osannut, ennen kuin kurssilla opin.

Sähköpostikeskustelumme perusteella ratkaisuperiaate oli tosiaan sama, vaikken ollut törmännyt mainitsemiisi sykliesityksiin aiemmin.

Kopeekka kirjoitti:

Tässäpä on linkki vaikeaan matemaattiseen ongelmaan. ... Jos sen keksit "hetken pohtimiselle", nostan hattua :-)

Enpä keksinyt, liian vaikea meikäläiselle :)

HeadCheese [18.09.2006 15:19:13]

#

Kopeekka kirjoitti:

Vielä yksi:

Tee ohjelma, joka tulostaa positiivisen kokonaisluvun nimen selvällä suomen kielellä, esimerkiksi 548 -> "viisisataaneljäkymmentäkahdeksan". Älä käytä sanaa "ja". Käytä sitä etsimään väliltä 1..1000000 (miljoona) kaikki luvut, joiden suomenkielisessä nimessä on täsmälleen 5 a-kirjainta. (Miljoona ja yksi eivät täytä ehtoa.)

Tempaisin lonkalta tuon 5 a:ta. Joku toinen ehto voi olla parempi. Lisätehtävä: etsi hyvä ehto.

Hoh, innostit mua tekemään tuollaisen ohjelman luvuille väliltä -999999...999999 javalla :-D. Ehtona etsin lukua jossa oli eniten tiettyä kirjainta.


Sivun alkuun

Vastaus

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

Tietoa sivustosta