Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: Putkaposti 10: Jääkukka

Sivun loppuun

Antti Laaksonen [19.09.2006 17:17:27]

#

Uusin putkaposti on kasvitieteen alalta:
https://www.ohjelmointiputka.net/postit/tehtava.php?tunnus=jkukka

Tähän tehtävään voi keksiä ratkaisuja ohjelmoimattakin!

ezuli [19.09.2006 18:17:28]

#

Eli piäisikö tuossa keksiä maksimipituus kukalle?
Jäi ilmeisesti perimmäinen tehtävä puuttumaan, tai sitten en sitä huomannut.

Antti Laaksonen [19.09.2006 18:21:55]

#

Tehtävässä pitää ilmoittaa kymmenen ostettavan pylvään pituudet. Tavoite on kukan kasvaminen mahdollisimman kauan.

Kukka voi kasvaa kuinka pitkäksi tahansa, kunhan pylväät voidaan joka päivä asetella tehtävässä mainitulla tavalla.

setä [19.09.2006 18:29:30]

#

Kuinka kukka voi kasvaa nollasta yhteen kun ei kerran ylety tarkalleen pylvään tasalle?

Antti Laaksonen [19.09.2006 18:39:49]

#

Kukka on siksi merkillinen, että se kasvaa kerralla sentin juuri, kun professori vaihtaa pylväiden järjestyksen.

Siis kukan mahdolliset pituudet ovat 1 cm, 2 cm, 3 cm jne.

Metabolix [19.09.2006 21:18:51]

#

Pikaisella päässälaskulla 9349 senttiä pituutta, laskinta en jaksanut käyttää tietokoneesta puhumattakaan. Mietin sitten uudestaan, kun joku panee paremmaksi :)

FooBat [19.09.2006 21:59:09]

#

Kiva tehtävä. Vähän joutui laskinta käyttää, muttä pääsi ohjelmoimatta. Mietin sitten uudestaan, kun joku panee paremmaksi :)

hunajavohveli [20.09.2006 15:18:24]

#

Minulla oli jo ajatus, jolla maksimimäärän olisi saanut ratkaistua suhteellisen pienellä määrällä yhtälöitä. Sitten tajusinkin, ettei idea ottanut huomioon lainkaan sitä, ettei kaikkia pylväitä ole pakko käyttää yhtä aikaa. :) Menipä siis uudelleen miettimiseksi.

Edit: No pääsinpä sentään ohjelmoimatta 25000:n päälle. Hieman piti notepadin kanssa pyöritellä lukuja. Kasvaa muuten melkoisen suureksi tuo kukka. :o

Pekka Karjalainen [20.09.2006 19:07:09]

#

Teoreettisen maksimin voi laskea helposti. Sen täytyy olla olemassa, koska pylväitä on äärellinen määrä ja niitä voi laittaa vain äärelliseen määrään paikkoja. Enpä spoilaa kuitenkaan enempää.

Mistäpä muuten saa ostettua 1 000 000 cm pitkiä pylväitä? Onko heillä kotiinkuljetus :-)

(No nyt hoksasin. Laskuapua Python-tulkista, muuten meni päässä.)

Antti Laaksonen [20.09.2006 19:42:43]

#

Kukka kasvaa pitkäksi, mutta onpa professorikin jo vanha mies, kun kukka saavuttaa suurimman pituutensa. Taivaisiin kohoava pylväs professorin talon edessä ei myöskään herätä kilpailijoiden epäilyksiä.

Pekka Karjalainen [20.09.2006 19:45:14]

#

Osaan nyt vastata kysymykseeni. Jos myyntipiste on miljoonan sentin, eli 10 000 metrin, eli 10 km:n etäisyydellä, heillä on tietenkin kotiinkuljetus. Toivottavasti varoittavat siitä etukäteen.

Jaska [20.09.2006 20:26:28]

#

Olipas helppo, kun jopa minä keksin ratkaisun varsin vaivatta. Lisäksi mielestäni todistin, että 29524 on maksimaalinen korkeus. Päässälaskuna olisi mennyt, mutta laiskana ihmisenä käytin kynää ja paperia.

FooBat [20.09.2006 21:33:12]

#

Joo, 29524 on maksimaalinen korkeus. Siinä käytetään kaikkia mahdollisia 10:n pylvään yhdistelmiä eri päivinä.

Latska [21.09.2006 01:31:56]

#

Väsyneenä en ole todellakaan parhaassa koodivireessä. Kehitin vain jonkun mielestäni loogisesti jatkuvan sarjan ja lähetin sen. Kokeilen joskus myöhemmin paremmalla ajalla saada paremman tuloksen sitten.

L2-K2 [21.09.2006 19:39:57]

#

Aika yksinkertainen verrattuna edellisiin putkaposteihin, ratkesi vajaassa vartissa kynän ja paperin avulla.

FooBat [22.09.2006 20:02:33]

#

Ellen ole kovin väärässä, tämä putkaposti taitaa olla hiukan haastavampi, jos tehtävän kääntäisi toisin päin eli annettaisiin joukko pylväitä ja kysyttäisiin kuinka kauan kukka kasvaa. Antilla näyttää olevan tarkastimessa jonkinlainen ratkaisu tähän tehtävään, mutta itselläni ei ainakaan vielä ole ideaa, jolla tehtävän voisi ratkaista tehokkaasti hiukan isommissa tapauksissa, joissa on esim. 20, 30, 50, 100, 1000 pylvästä. 1000 pylväällä maksimaalinen korkeus (6.6e476) alkaa jo olla niin iso, että ihan mikä tahansa brute force ratkaisu ei kelpaa tarkastamaan puuttuuko välistä jokin luku.

Antti Laaksonen [23.09.2006 18:52:19]

#

Tällä hetkellä tehtävän tarkistin laskee kukan kasvuajan yksinkertaisesti muodostamalla kaikki mahdolliset pylväiden yhdistelmät (310 = 59049 kpl) ja tarkastamalla taulukosta, milloin tulee ensimmäinen pituus, jota ei pysty muodostamaan. Minun tiedossani ei ole oleellisesti nopeampaa tapaa tarkistuksen tekemiseen, joten tässä on tosiaan oiva lisähaaste niille, joille alkuperäinen tehtävä oli turhan helppo.

Sami [24.09.2006 00:02:53]

#

Joo... Ehkä vähän turhan helppo tällä kertaa.
Oikea ratkaisu löytyi alle 5 minuutissa ilman laskinta, mutta ehkä asiaa helpotti hieman se, että on kuullut vastaavanlaisen tehtävän erilaisena versiona joskus aiemmin aikoja sitten.

Käytössäsi on orsivaaka (vaaka, jossa on kaksi vaakakuppia ja joka näyttää kun kupit ovat keskenään tasapainossa) ja neljä punnusta. Kuinka ja minkä painoisilla punnuksilla voit punnita näillä tarvikkeilla minkä tahansa tasakiloja painavan esineen painon väliltä 1-40 kg? (Ja vastaushan on täsmälleen sama putkapostin tehtävän kanssa, joskin tässä kysytään vain neljää lukua kymmenen sijaan).

Jaska [24.09.2006 12:31:47]

#

Eikös tuon pienimmän joukkoon kuulumattoman luvun ongelma ole analoginen täydellisen peitteen ongelman kanssa, joka on tunnetusti NP-täydellinen? En tiedä, tuli vain ideana mieleen. Mutta ongelma vaikuttaa kovasti NP-täydelliseltä.

setä [22.10.2006 23:34:51]

#

Kauampa kesti ennen kuin aloin tosissani miettiä. Muutamalla aiemmalla yrityksellä en päässyt mihinkään mutta kun tehtävä näköjään on helppo oli pakko puristaa jotain ja löytyihän se ratkaisu. Oli tosiaan helppo.


Sivun alkuun

Vastaus

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

Tietoa sivustosta