Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Sphere Online Judge

alottelijaa [02.05.2009 22:36:25]

#

surffasin sivuja ja päädyin Tänne. Sen verran koitin sivua että palautin testiongelman.

Mikä tämä sivu ylipäänsä on? Miten on mahdollista että palautetut ongelmat tarkistetaan parissa sekunnissa?

Antti Laaksonen [02.05.2009 22:50:51]

#

Olet löytänyt hyvän sivuston, kannattaa tutustua siihen lähemminkin. SPOJ sisältää suuren joukon ongelmia, joita ratkomalla voi harjoitella ohjelmointia. Kun ongelman ratkaisevan ohjelman lähettää palvelimelle, se tarkistetaan automaattisesti. Käytännössä ohjelman toimintaa kokeillaan monilla lähtöarvoilla ja ohjelma hyväksytään, jos se toimii oikein joka tilanteessa.

jlaire [02.05.2009 22:54:06]

#

alottelijaa kirjoitti:

Mikä tämä sivu ylipäänsä on?

Iso kasa algoritmiongelmia, joita saa ratkoa jos huvittaa. Vähän tarkempaa tietoa löytyy täältä: https://www.spoj.pl/info/.

alottelijaa kirjoitti:

Miten on mahdollista että palautetut ongelmat tarkistetaan parissa sekunnissa?

Pienien ohjelmien kääntäminen ei vie paljoa aikaa, ja monissa ongelmissa on suunnilleen tuo parin sekunnin aika raja. Jos aikaraja ylittyy, prosessi tapetaan ja käyttäjälle ilmoitetaan, että syy on TLE eli time limit exceeded.

Ohjelmien toimintaa ei (ainakaan yleensä) tarkisteta täydellisesti. Niiden tarvitsee vain ratkaista valitut testitapaukset oikein.

SPOJ:ssa on minusta vähän turhan paljon tehtäviä. Monet ovat aika tylsiä (triviaali idea, mutta toteutus vie aikaa) tai huonosti selitettyjä. Iso plussa on tuki monille eri kielille; joillain vastaavilla sivustoilla ei ole kuin C/C++/Java/Pascal.

Toinen hyvä sivusto on Project Euler. Jotkut ongelmat ovat enemmänkin matikkaa kuin ohjelmointia, mutta (varsinkin uusimmat) todella hyvin laadittuja. Ne on myös selitetty tiiviisti ilman pitkiä epäolennaisia tarinoita Farmer Johnista ja hänen lehmistään.

Edit: Wikipediassa näkyy olevan lista tällaisista sivustoista: http://en.wikipedia.org/wiki/Online_judge.

Päärynämies [02.05.2009 22:55:57]

#

Aihetta sivuten, niin kannattaa tutustua myös project euleriin, jos (hieman matematiikka-aiheiset) ohjelmointitehtävät kiinnostavat. Osoitehan on: http://projecteuler.net/

Ihan mukavia ongelmia löytyy.

edit: Muokkasikohan funktio omaan viestiinsä maininnan project eulerista vai luinko vain huolimattomasti...

Antti Laaksonen [02.05.2009 23:22:44]

#

funktio kirjoitti:

Ne on myös selitetty tiiviisti ilman pitkiä epäolennaisia tarinoita Farmer Johnista ja hänen lehmistään.

Minun lempipaikkani ohjelmoinnin harjoitteluun on USACO:

http://train.usaco.org/usacogate

Tällä sivustolla on kerrallaan näkyvillä vain pieni joukko tehtäviä, jotka ratkaisemalla pääsee seuraaviin tehtäviin. Tämän ansiosta ei voi jättää tekemättä tehtäviä, joihin ei keksi heti ratkaisua.

Automaattisella tarkistuksella varustetuista laajoista tehtäväkokoelmista ei ole pulaa Internetissä. Tässä on vielä muutamia muita sivustoja:

Timus Online Judge
http://acm.timus.ru/

UVa Online Judge
http://icpcres.ecs.baylor.edu/onlinejudge/

Zhejiang Online Judge
http://acm.zju.edu.cn/onlinejudge/

jlaire [02.05.2009 23:33:34]

#

Päärynämies kirjoitti:

edit: Muokkasikohan funktio omaan viestiinsä maininnan project eulerista vai luinko vain huolimattomasti...

Muokkasin joo, tosin ennen kuin huomasin sinun viestisi.

Antti Laaksonen kirjoitti:

Tällä sivustolla on kerrallaan näkyvillä vain pieni joukko tehtäviä, jotka ratkaisemalla pääsee seuraaviin tehtäviin. Tämän ansiosta ei voi jättää tekemättä tehtäviä, joihin ei keksi heti ratkaisua.

Toisaalta hyvä asia, mutta toisaalta se voi turhauttaa, koska monet alkupään tehtävät lähinnä kertaavat tunnettuja algorimejä. Jos tietää ne jo ennestään, ei kaikista tehtävistä opi välttämättä mitään.

Mutta hyvä että on paljon erilaisia sivustoja, jokaiselle varmaan löytyy mieleinen.

Antti Laaksonen [03.05.2009 00:20:40]

#

Unohdin mainita USACOn mukavimman puolen: jos ohjelmassa on virhe, tulee näkyviin testisyöte, sen odotettu vastaus ja oman ohjelman tuottama vastaus. Useimmat tarkistimet tyytyvät ilmoittamaan "väärä vastaus" ilman tarkempia selityksiä, jolloin ohjelman virhettä on ikävää alkaa etsiä, kun syynä voi olla yhtä hyvin ajatusvirhe algoritmissa kuin yhden välilyönnin puuttuminen tulostuksessa.

Tosin voi myös ajatella, että USACO on liiankin huomaavainen: ohjelman virheen paikannus ilman lisätietoa voi myös olla todella opettavaista.

Vastaus

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

Tietoa sivustosta