Monellako tavalla korttipakan korteista summa 13?

sata_vai_tuhat

Pelkistä kuninkaista tulee 4, yhdestä rouvasta ja erimaalaisista ässistä myös 4.

Yksi jätkä ja kaksi ässää on kanssa 13.

Kuinka monta eri variaatiota on yhteensä?

23

373

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Annas kun arvaan, olet ns. "taloustieteen" opiskelija
      Olinko oikeassa?
      :)

      • Yleensä surkeimpia matikassa mutta iso ego
        ja pyrkimys päästä "isoksi peluriksi".

        Teitä yhdistää fundamenteissa iso ego / äo suhde.
        Hyvin harva osaa matematiikkaa, varsinkaan tilasto-
        matikkaa. Siksi näillä palstoilla pyörii välillä jopa
        Lisuria tai jonkinmoista Dr-tutkintoa suorittavia
        sääliöitä.

        Nämä pellet ovat kuin säätieteilijöitä (joita kunnioitan suuresti)
        ilman sääkarttaa. Siitä huolimatta turpa aukeaa jos vain joku
        tuo mikrofonin 20m läheisyydelle -


    • luuppisilmukka

      Voi olla helpoin selvittää tietokoneen avulla käymällä läpi kaikkien vaihtoehtojen summat.

      • adfgrtuy

        Aika kauan menee tietokoneella raakaa voimaa käyttäen kun noiden kombinaatioiden lukumäärä on suuruusluokkaa 10^15 (summa(n=1 -> n=52) C(52,n), missä C(52,n) tarkoittaa niiden kombinaatioiden lukumäärää joilla 52:sta kortista voidaan valita n kappaletta)


    • pythonisti

      Rekursiolla ja taulukoinnilla sain vastaukseksi 6948.

      Onko muut yrittäneet ratkaista?

      • entiedäo

        Eikös variaatiot ole järjestettyjä jonoja, https://fi.wikipedia.org/wiki/Variaatio_(kombinatoriikka) . Siten lukumäärän tulisi olla jaollinen 4!:lla.


      • pythonisti

        Tuo 6948 on kombinaatioiden lukumäärä. Aloittajan esimerkistä päättelin että hän tarkoittaa kombinaatioita vaikka käyttikin termiä variaatio.


      • kokeilenko

        Minä yritän kokeilla neljällä sisäkkäisellä 0..13 silmukalla, joista jokainen silmukka olisi oma maansa ja joita lasketaan yhteen. Ensimmäinen tärppi olisi 0,0,0,13 ja sitten seuraava 0,0,12,1. Jos löytyy summa 13, niin breakillä pois ettei tarvitse loppuja käydä.

        Paitsi että ei varmaan tarvita kuin kolme silmukkaa, koska viimeinenhän voidaan laskea, jos kolmen ensimmäisen silmukan summa on 0-12.


      • kokeilenko
        kokeilenko kirjoitti:

        Minä yritän kokeilla neljällä sisäkkäisellä 0..13 silmukalla, joista jokainen silmukka olisi oma maansa ja joita lasketaan yhteen. Ensimmäinen tärppi olisi 0,0,0,13 ja sitten seuraava 0,0,12,1. Jos löytyy summa 13, niin breakillä pois ettei tarvitse loppuja käydä.

        Paitsi että ei varmaan tarvita kuin kolme silmukkaa, koska viimeinenhän voidaan laskea, jos kolmen ensimmäisen silmukan summa on 0-12.

        Minä en saanut kuin 560 eri vaihtoehtoa, kun tein neljän silmukan version.

        Tuossa Python-koodi: http://pastebin.com/jmUMCbLj


      • Lukema pitänee paikkansa.
        Laskeskelin huvikseni myös kuinka nuo jakautuu korttien lukumäärään ja päädyin seuraaviin:

        1 = 4
        2 = 96
        3 =656
        4= 1888
        5 = 2492
        6 = 1472
        7 =324
        8 = 16
        1,2 ja 8 kortin vaihtoehdot on päässälaskuja ja esimerkiksi 7 kortilla ei tarvitse kierrättää 5 suurempaa joten luupit jää lyhyiksi.


      • looppi-lasse

        Mitä nuo luvut tarkoittavat?
        Oikea vastaus on 6948.
        Pythonistin hieno scripti (jonka moderaattori poisti) antaa tuloksia:
        abc:~$python korttipakka.py
        (1, 4)
        (2, 10)
        (3, 24)
        (4, 51)
        (5, 100)
        (6, 190)
        (7, 344)
        (8, 601)
        (9, 1024)
        (10, 1702)
        (11, 2768)
        (12, 4422)
        (13, 6948) << summa 13
        (14, 10748)
        (15, 16404)
        (16, 24722)
        ...
        (354, 1702)
        (355, 1024)
        (356, 601)
        (357, 344)
        (358, 190)
        (359, 100)
        (360, 51)
        (361, 24)
        (362, 10)
        (363, 4)
        (364, 1) << summa 364, vain yksi vaihtoehto


      • laskelmoija

        Kysyjä määritteli "Pelkistä kuninkaista tulee 4", eli kortin maalla on väliä.

        Yllä 560 vastauksen tuottava koodi ei laske kaikkia vaihtoehtoja,
        esim. "Hertta 9, Hertta 1, Risti 1, Pata 1, Ruutu 1" puuttuu.


      • Luvut-tarkoittavat
        looppi-lasse kirjoitti:

        Mitä nuo luvut tarkoittavat?
        Oikea vastaus on 6948.
        Pythonistin hieno scripti (jonka moderaattori poisti) antaa tuloksia:
        abc:~$python korttipakka.py
        (1, 4)
        (2, 10)
        (3, 24)
        (4, 51)
        (5, 100)
        (6, 190)
        (7, 344)
        (8, 601)
        (9, 1024)
        (10, 1702)
        (11, 2768)
        (12, 4422)
        (13, 6948) << summa 13
        (14, 10748)
        (15, 16404)
        (16, 24722)
        ...
        (354, 1702)
        (355, 1024)
        (356, 601)
        (357, 344)
        (358, 190)
        (359, 100)
        (360, 51)
        (361, 24)
        (362, 10)
        (363, 4)
        (364, 1) << summa 364, vain yksi vaihtoehto

        Luku 13 voi olla summana korttien määrällä 1...8, tuossa on kai lukemat korttimäärää kohti.
        Summan pitäisi olla 6948 jos on oikein.


    • entiedätätä
      • looppi-lasse

        Minäkin sain java-softalla, kahdeksalla sisäkkäisellä loopilla, tulokseksi 6948.
        Tarkistuslaskenta käynnissä..


    • looppi-lasse

      Mahtaako 6948 olla oikein?
      Looppien lukumäärä 8 tulee siitä, että yli kahdeksan kortin summa on aina > 13.
      Tämä pienentää looppien kokonaismäärää rajusti 2^52:stä (4,503599627×10¹⁵)
      770503677:een, tämä tulos tuli summaksi ao. koodista.
      Näitä sisäkkäisiä looppeja siis 0:sta 7:ään:
      for (idx[1] = idx[0] 1; idx[1] < cards.length; idx[1] ) {
      val[1] = val[0] cards[idx[1]];
      loopCount ;
      if (val[1] == match) {
      matchCount ;
      continue;
      } else if (val[1] > match) {
      val[1] = val[0];
      }

      int cards[] = { 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
      8, 8, 8, 8,9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13 };

      • kokeilenko

        Minulla oli näköjään pieni ajatusvirhe, koska tietenkin niitä kortteja voi valita myös enemmänkin kuin 4. Pitääkin tehdä korteista tuolla tavalla lista, josta poimia niitä pois ja summailla.


      • silmukka-sirkka

        Moderaattori-robotti poisti asiallisen viestini, tässä sama asia uudelleen.
        (Suomi24 ylläpito tunnusti että robotti poistaa asiallisiakin viestejä).

        Linkissä on tekstitiedosto jossa on tulosvaihtoehdot: http://aijaa.com/8GqJQg
        Tiedoston sisällön alkua (t=risti):
        Cards 52
        h1 r1 t1 p1 h2 r2 t2 h3
        h1 r1 t1 p1 h2 r2 t2 r3
        h1 r1 t1 p1 h2 r2 t2 t3
        h1 r1 t1 p1 h2 r2 t2 p3
        h1 r1 t1 p1 h2 r2 p2 h3
        h1 r1 t1 p1 h2 r2 p2 r3
        h1 r1 t1 p1 h2 r2 p2 t3
        h1 r1 t1 p1 h2 r2 p2 p3
        h1 r1 t1 p1 h2 r2 h5
        h1 r1 t1 p1 h2 r2 r5
        h1 r1 t1 p1 h2 r2 t5
        h1 r1 t1 p1 h2 r2 p5
        h1 r1 t1 p1 h2 t2 p2 h3
        h1 r1 t1 p1 h2 t2 p2 r3
        h1 r1 t1 p1 h2 t2 p2 t3
        h1 r1 t1 p1 h2 t2 p2 p3
        h1 r1 t1 p1 h2 t2 h5
        h1 r1 t1 p1 h2 t2 r5
        h1 r1 t1 p1 h2 t2 t5
        h1 r1 t1 p1 h2 t2 p5
        ...
        Voisiko joku tarkkasilmäinen lukija tarkistaa puuttuuko joku vaihtoehto, tai onko joku kahteen kertaan.

        ----------
        alla jotain dummy-lisätekstiä, jotta roboraattori ei poistaisi viestiäni.
        Mahtaako 6948 olla oikein?
        Looppien lukumäärä 8 tulee siitä, että yli kahdeksan kortin summa on aina > 13.

        Tämä pienentää looppien kokonaismäärää rajusti 2^52:stä (4,503599627×10¹⁵)
        770503677:een, tämä tulos tuli summaksi ao. koodista.
        Näitä sisäkkäisiä looppeja siis 0:sta 7:ään:
        for (idx[1] = idx[0] 1; idx[1] < cards.length; idx[1] ) {
        val[1] = val[0] cards[idx[1]];
        loopCount ;
        if (val[1] == match) {
        matchCount ;
        continue;
        } else if (val[1] > match) {
        val[1] = val[0];
        }

        int cards[] = { 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7,
        8, 8, 8, 8,9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13 };


    • Tana-kele

      No nyt roboraattori-paska poisti sen pythonistin hienon ratkaisun.
      Tana kele mitä touhua suoli24:n toimesta.
      (Edellä kiroilua testin vuoksi: kiroilla saa täällä vapaasti,
      mutta asiallisetkin viestit moderoidaan pois).
      Sen olen huomanut, että leipätekstiä pitää viestissä olla reilusti, jos mukana on joku aijaa tms. linkki. Muuten viesti poistetaan.

      • pythonistin_kaveri

        Tässä vielä pythonistin koodi.
        Voisitko pythonisti avata vähän algoritmia, mistä matematiikan kaavasta tuo tulee?

        <<<
        A=[]

        for i in range(13,0,-1):
        A.append(i)
        A.append(i)
        A.append(i)
        A.append(i)

        D={}

        def solve(C,n):
        if (len(C),n) in D:
        return D[(len(C),n)]
        if n==0:
        return 1
        if len(C)==1:
        if n==C[0]:
        return 1
        return 0
        s=0
        for i in range(0,2):
        if n<C[0]*i:
        break
        temp=solve(C[1:],n-i*C[0])
        D[(len(C)-1,n-i*C[0])]=temp
        s =temp
        return s

        for i in range(1,sum(A) 1):
        print(i,solve(A,i))
        >>>
        -------
        Veikkaan että roboraattori poistaa tämänkin viestin, koska se ehkä sisältää liikaa vieraskielisiä outoja sanoja robotille.


      • pythonisti

        En tiedä olenko hyvä selittämään mutta yritetään.

        Jos on k kappaletta kortteja C[0],C[1],...,C[k-1] ja haetaan kombinaatioiden lukumäärää joilla summa on n.

        Tämä kombinaatioiden lukumäärä voidaan jakaa kahteen osaan:

        1. Valitaan kortti C[0] ja haetaan korteista C[1],...C[k-1] niiden kombinaatioiden lukumäärä joilla summa on n-C[0]
        2. Ei valita korttia C[0] ja haetaan korteista C[1],...,C[k-1] niiden kombinaatioiden lukumäärä joilla summa on n.

        Korttien C[0],C[1],...,C[k-1] kombinaatioiden lukumäärä on kahden ylläolevan tapauksen kombinaatioiden lukumäärän summa.

        Tuo sama toimenpide voidaan tehdä aina uudestaan rekursiivisesti kunnes on enää yksi kortti jäljellä tai valittujen korttien summa ylittää luvun n tai on tasan n.

        https://en.wikipedia.org/wiki/Recursion_(computer_science)

        Dictionaryyn D tallennetaan pistepareja jäljellä olevien korttien ja jäljellä olevan haettavan summan mukaan. Näin ei tarvitse laskea useaan otteeseen samoja laskuja.

        https://en.wikipedia.org/wiki/Dynamic_programming

        Python-koodi on aika hankalasti luettavissa täällä suomi24:ssa koska sisennykset eivät näy. Tuo koodi sisennyksineen löytyy menemällä pastebin piste com ja kirjoittamalla hakukenttään TBkXL13U.


      • pythonistin_kaveri

        Nyt tämäkin koodin kohta selvisi:
        for i in range(0,2):
        temp=solve(C[1:],n-i*C[0])
        D[(len(C)-1,n-i*C[0])]=temp


    Ketjusta on poistettu 3 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Kuvat! Dannyyn liitetty Helmi Loukasmäki, 22, on puhjennut naisena kukkaan - Some sekoaa: "Sä..."

      Ooo, kaunis aikuinen nainen Helmistä on kasvanut siinä yli 80-vuotiaan Dannyn rinnalla! Katso uudet kuvat: https://ww
      Suomalaiset julkkikset
      63
      4810
    2. Henkirikos Alakylässä

      Nainen löydetty elottomana, mies otettu kiinni. Mitä on tapahtunut?
      Seinäjoki
      52
      3227
    3. Suodatinpussin kastelemalla saa parempaa kahvia

      Kokeilin niksiä ja kyllä tämä kahvi on parempaa nyt. Ei lainkaan maistu paperiselta. Huljuttelee hanan alla suppiloa pap
      Maailman menoa
      145
      2442
    4. Tidätkö nainen

      että suoraan sanottuna v.tut.aa että pääsit näin lähelle minua. Ei olisi oikeasti aikaa tähän mutta silti aina välillä o
      Ikävä
      105
      2016
    5. Mikä on kaivattusi etunimi?

      Otsikossa siis on kysymys eriteltynä. Vain oikeat vastaukset hyväksytään.
      Ikävä
      80
      1622
    6. Onkohan sinulla kaikki hyvin?

      Nyt vähän sellainen outo tunne tuli. Sinun asiasi niin ei minulle toki tarvitse kertoa. Kunhan mietin...
      Ikävä
      38
      1227
    7. Huikeeta, mahtavaa, ihan mielettömän upeeta

      Me ostettiin talo Espanjasta. Tosin saadaan käyttää sitä vain muutama viikko vuodessa kun on monta muutakin ostajaa! M
      Kotimaiset julkkisjuorut
      193
      1145
    8. Oho! Arja Koriseva paljastaa TTK:n ekasta suorasta lähetyksestä: "On vähän ärsyttävä yhtälö!"

      Upea Arja Koriseva! Tsemppiä haasteelliseen tilanteeseen! Lue lisää: https://www.suomi24.fi/viihde/oho-arja-koriseva-
      Suomalaiset julkkikset
      16
      1131
    9. En kestä katsoa

      Sitä miten sinusta on muut kiinnostuneita. Olen kateellinen. Siksi pitäisi lähteä pois
      Ikävä
      87
      1118
    10. Viimeinen reissu tälle kesälle

      Pian se syksy on. Hyvää huomenta ja aurinkoista päivää. ☕🌞🍁🌻🐺❤️
      Ikävä
      173
      1106
    Aihe