Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Vakioveikkausrivit -koodi

Sivun loppuun

kayttaja-8757 [18.09.2009 08:35:34]

#

Tervehdys Putkalaiset. Tarvitsisin apua, omat riittämättömät ohjelmointitaitoni eivät riitä. Tarvitsisin koodinpätkän joka tulostaa ruudulle (ja myös .txt-tiedostoon) kaikki mahdolliset 13 merkin jonot, joissa jokaisessa 13:sta kohdassa varioi merkit 1,x ja 2. Niitähän on kaikkiaan n. 1.5miljoonaa: 3 pot 13. Muotoilu ei olisi pääosassa, eli rivit voisivat tulostua vaikka vain putkeen jollain välimerkillä erotettuina.

Miten vaikea kys. toteutus olisi?

Tulosjoukkohan alkaisi:
1111111111111,x111111111111,1x11111111111,11x1111111111,...

tosin tulostusjärjestykselläkään ei olisi niin suurta merkitystä.


T: Veikkaaja

Antti Laaksonen [18.09.2009 08:41:11]

#

Tuossa on C-kielinen ohjelma, joka tulostaa haluamasi rivit:

#include <stdio.h>

char rivi[15];

void haku(int k) {
    if (k == 13) {
        printf("%s\n", rivi);
        return;
    }
    rivi[k] = '1';
    haku(k + 1);
    rivi[k] = 'x';
    haku(k + 1);
    rivi[k] = '2';
    haku(k + 1);
}

int main(void) {
    rivi[13] = 0;
    haku(0);
    return 0;
}

Voit ohjata tulostuksen tiedostoon näin:

veikkaus > veikkaus.txt

kayttaja-8757 [18.09.2009 09:23:40]

#

Tuhannet kiitokset Laaksonen. Voisitko vielä vääntää rautalangasta, että miten ajan tuon ohjelman? Nimimerkillä melko vähän koodannut. Anteeksi tyhmyyteni.

Grez [18.09.2009 09:28:50]

#

1) Tallennat sen tiedostoon, esim. veikkaus.c

2) Käännät sen sillä C-kääntäjällä jota yleensäkin käytät

3) Ajat käännetyn ohjelman (esim. Windowsissa .exe-tiedoston)

Antti Laaksonen [18.09.2009 09:52:05]

#

Oletan seuraavaksi, että käytössäsi on Windows XP tai vastaava.

Saitko ohjelman käännettyä exe-tiedostoksi? Jos et saanut, voit kopioida exe-tiedoston tästä:

http://koti.mbnet.fi/pllk/muut/veikkaus.exe

Oletan seuraavaksi, että exe-tiedosto on hakemistossa c:\omat\koodi.

Ohjelma on järkevintä käynnistää komentoriviltä:

1. Valitse Start->Run (Käynnistä->Suorita) ja kirjoita "cmd".

2. Kirjoita "cd c:\omat\koodi" ja paina Enter.

3. Kirjoita "veikkaus" ja paina Enter, jolloin ohjelma käynnistyy.

Jos haluat keskeyttää ohjelman, paina Control + C. Jos haluat, että ohjelma tulostaa rivit näytön sijasta tiedostoon, käynnistä se komennolla "veikkaus > veikkaus.txt". Tässä veikkaus.txt on tiedosto, johon ohjelma tulostaa rivit.

Hakoulinen [18.09.2009 13:30:15]

#

Olenko nyt ihan ulapalla, vai eikö niitä rivejä ole 13 potenssiin 3 eikä 3 potenssiin 13?

Gaxx [18.09.2009 13:40:18]

#

Hakoulinen kirjoitti:

Olenko nyt ihan ulapalla, vai eikö niitä rivejä ole 13 potenssiin 3 eikä 3 potenssiin 13?

Niitä on 3 potenssiin 13. Vertaa ehkä tutumpiin bitteihin: 2^4, 2^8...

Teuro [18.09.2009 13:56:59]

#

133 < 313, koska 13 log 3 > 3 log 13 -> 13 log 3 / 3 > log 13.

kayttaja-8757 [18.09.2009 14:19:10]

#

Kiitokset .exe filestä. Homma toimii. Suurkiitokset.


Sivun alkuun

Vastaus

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

Tietoa sivustosta