Lamppu pähkinä

Alussa on 100 palavaa lamppua. Siirryt ovelta ovelle, sammuttaen palavan ja sytyttäen sammutetun lampun. Aloitus kierroksella sammutat jokaisen lampun, toisella kierroksella käyt vain joka toisella lampulla, sytyttäen tai sammuttaen lampun riippuen onko lamppu palamassa vai sammutettu, seuraavalla kierroksella käyt joka kolmannella lampulla, ja sitten joka neljännellä lampulla ja niin edelleen, niin kauan kunnes olet tehnyt kierroksia siinä määrin ettei lamppuja ole kuin se sadas lamppu jonka sytytät tai sammutat, riippuen mikä sen tila oli lampulle tullessa.

Lopuksi tulostat palavien lamppujen numerot seuraavasti:
11, 24, 29, 36, 45, 46, 59, 62, 92, 100

Ratkaise millä kielellä osaat, vaikka sitten arvaten. Montakohan merkkiä tarvitaan python koodia tähän.
13370
Äänestä

Muut lukivat myös

Vastaukset 13

Vanhimmat

Tulihan tuohon moka, jos alussa on palavat lamput, tulostetaan sammutetut, ja toisin päin, jos alussa on sammutetut, tulostetaan palavat lamput.

Eli tulostetaan lamput joiden tila ei ole enää alkuperäinen.

Äänestä

Vaikea tietää mitä tuossa tehtävässä oikein tarkoitetaan, oletin että ei kierroksia joissa edestakaisilla reissuillla sammutellaan/sytytellään kumpaankin suuntaan mennessä:

kierros 1. sammutetaan siis 100 lamppua
kierros 2. alkaa, kaikki lamput ovat sammutettuina, menemme lampulta toiselle harppauksin 2
alkaa kierros: 2 muutettuja lamppuja yhteensa:0 askel:2
alkaa kierros: 3 muutettuja lamppuja yhteensa:50 askel:3
alkaa kierros: 4 muutettuja lamppuja yhteensa:84 askel:4

kohdassa kierros: 4, lamppu numero 60 tuli 100 muutettua lamppua täyteen


tulostetaan kaikkien lamppujen tila

palamattomat lamput:
lamppu numero 1 ei pala, on järjestyksessä palamaton lamppu numero 1.
lamppu numero 4 ei pala, on järjestyksessä palamaton lamppu numero 2.
lamppu numero 5 ei pala, on järjestyksessä palamaton lamppu numero 3.
...
6,7,8,11,13,16,17,18,19,20,23,25,28,29,30,31,32,35,37,40,41,42,43,44,47,49,52,53,54,55,56,59,61,65,66,67,71,72,73,77,78,79,83,84,85,89,90,91,95,96,97,

palavat lamput:
lamppu numero 0 palaa, on järjestyksessä palava lamppu numero 1.
lamppu numero 2 palaa, on järjestyksessä palava lamppu numero 2.
lamppu numero 3 palaa, on järjestyksessä palava lamppu numero 3.
...
9,10,12,14,15,21,22,24,26,27,33,34,36,38,39,45,46,48,50,51,57,58,60,62,63,64,68,69,70,74,75,76,80,81,82,86,87,88,92,93,94,98,99,

Äänestä

Jos teemme kierroksen käymällä toisella ovella sammutellen ja sytytellen lamppuja käy näin:

kierros 1. sammutetaan siis 100 lamppua
kierros 2. alkaa, kaikki lamput ovat sammutettuina, menemme lampulta toiselle harppauksin 2
alkaa kierros: 2 muutettuja lamppuja yhteensa:0 askel:2
ollaan puolimatkassa,kierros: 2 muutettuja lamppuja yhteensa:50 askel:2

kohdassa kierros: 2, lamppu numero 2 tuli 100 muutettua lamppua täyteen


tulostetaan kaikkien lamppujen tila

palamattomat lamput:
lamppu numero 1 ei pala, on järjestyksessä palamaton lamppu numero 1.
lamppu numero 2 ei pala, on järjestyksessä palamaton lamppu numero 2.
lamppu numero 3 ei pala, on järjestyksessä palamaton lamppu numero 3.
...
4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,

palavat lamput:
lamppu numero 0 palaa, on järjestyksessä palava lamppu numero 1.

Äänestä

Jos emme tee täyttä kierrosta vaan hyppäämme yhden lampun yli, kierroksen puolimatkassa käy näin:

kierros 1. sammutetaan siis 100 lamppua
kierros 2. alkaa, kaikki lamput ovat sammutettuina, menemme lampulta toiselle harppauksin 2
alkaa kierros: 2 muutettuja lamppuja yhteensa:0 askel:2
ollaan puolimatkassa,kierros: 2 muutettuja lamppuja yhteensa:50 askel:2

kohdassa kierros: 2, lamppu numero 1 tuli 100 muutettua lamppua täyteen


tulostetaan kaikkien lamppujen tila

palamattomat lamput:


palavat lamput:
lamppu numero 0 palaa, on järjestyksessä palava lamppu numero 1.
lamppu numero 1 palaa, on järjestyksessä palava lamppu numero 2.
lamppu numero 2 palaa, on järjestyksessä palava lamppu numero 3.
...
3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,

Äänestä

Väite: Neliöluvut (väliltä 1-100) tulostuvat.
Todistus: Lampun k tila vaihtuu niin monta kertaa kuin k:lla on tekijöitä. Tekijöiden määrä saadaan k:n alkulukuhajoitelmasta k = sum_j pj^aj kaavalla prod_j (1 aj). Tämä on pariton jos ja vain jos jokainen a_j on parillinen eli k on neliöluku.

Äänestä
  • Enkös minä noin sanonutkin, vaikken mitään virkkanutkaan.

    Äänestä

Ensimmäinen lamppu on kyllä numeroltaan 0, nollakin on numero, jos et vielä tuota tiennyt :D Nollasta sataan positiiviset numerot ovat 0-99. eivät ikinä ole 1-100, eivätkä edes 7-13 :D:D

Äänestä
  • Noin minä ajattelinkin niiden olevan, en vaan muistanut mainita tuota avauksessa.

    Äänestä

  • Entäs sitten kun joku lamppu tuossa räpsyttelyssä hajoaa?
    Ei nuo LED-lamputkaan ikuisia tunnu olevan.

    Äänestä

  • Anonyymi kirjoitti:

    Entäs sitten kun joku lamppu tuossa räpsyttelyssä hajoaa?
    Ei nuo LED-lamputkaan ikuisia tunnu olevan.

    Vaihdoin autoon rekisterinkilven polttimot LED-polttimoiksi, siihen loppu joka vuotuinen polttimoiden vaihto. Tästä voidaan vetää johtopäätös, että ovat merkittävästi pitkäikäisempiä kuin hehkulankapolttimot. En vain huomannut laittaa tätäkään avaukseen.

    Äänestä

Oli aika hauska aamun pähkinä purtavaksi, kun itse jotain Direct3D, DirectX -juttuja teen, oli hieman helpompi tehtävä kun jotain moniulotteisia grafiikkamatriiseja, valaistukset jne pyöritellä mielessä, aivot väsyvät helposti kun moniulotteisia matriiseja vilisee vain silmissä ja niiden numeroarvoja :SD

Voin kyllä sanoa että, aika laajallakin kokemuksella, että joku Direct3D/DirectX ohjelmointi on syntaksiltaan aika minen sanoisinkaan.. herkullista, päinvastaisessa mielessä.

Äänestä

Hyvä tuollainenkin käsky tietokoneelle, mitä tekee tuo:

" // select the vertex and index buffers to use
d3ddev->SetStreamSource(0, v_buffer, 0, sizeof(CUSTOMVERTEX));
d3ddev->SetIndices(i_buffer);
"
Linus ei taida ymmärtää jotain Direct3D-juttuja kun Linux on aina yksiulotteinen käyttöjärjestelmä monokkeleineen.

Äänestä
  • Jatkaisin tuota jotain Direct3D/D3DX -juttua eli tuollainen koodirivi tarjoittaa:

    Eli tuollaisessa koodissa tarkoittaa, että on jo varattuna d3ddev=on grafiikkakiihdytin, jolle määräämme laskutoimituksia, 0, on normaali, v_buffer on sellaisten moniulotteisten matriksien määritelmä, yleensä moniulotteisiak, sizeof=operandi, kuinka paljon varataan grafiikkakiihdyttimen muistista tilaa.

    SetIndices, on tarpeeton toiminto, laskujärjestyksen määritelmää, miten z-mipmap-buffereita, shaderaita jne... laskeskeltaan sitten..

    Äänestä

Kommentoi aloitusta


Anonyymi kirjoitti:

Alussa on 100 palavaa lamppua. Siirryt ovelta ovelle, sammuttaen palavan ja sytyttäen sammutetun lampun. Aloitus kierroksella sammutat jokaisen lampun, toisella kierroksella käyt vain joka toisella lampulla, sytyttäen tai sammuttaen lampun riippuen onko lamppu palamassa vai sammutettu, seuraavalla kierroksella käyt joka kolmannella lampulla, ja sitten joka neljännellä lampulla ja niin edelleen, niin kauan kunnes olet tehnyt kierroksia siinä määrin ettei lamppuja ole kuin se sadas lamppu jonka sytytät tai sammutat, riippuen mikä sen tila oli lampulle tullessa.

Lopuksi tulostat palavien lamppujen numerot seuraavasti:
11, 24, 29, 36, 45, 46, 59, 62, 92, 100

Ratkaise millä kielellä osaat, vaikka sitten arvaten. Montakohan merkkiä tarvitaan python koodia tähän.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu