Integer-joukon

kombinaatiot

Vähäiset ohjelmointitaitoni ovat unohtumassa. Onkohan Javan nykyisissä versioissa - esim. Math-kirjastossa - olemassa valmis metodi, joka laskee jonkun integer-joukon kombinaatiot?

Tai löytyisiköhän tällainen koodinpätkä netistä tai voisiko joku näppärä kirjoittaa pätkän, joka tulostaa jonkun integer-joukon kaikki eri kombinaatiot, esim. kaikki mahdolliset 3 integerin osajoukot, jotka voidaan muodostaa 7 integerin joukosta.

Siis syötteenä joukko integerejä, tulostetaan joko näytölle tai tiedostoon.
Koodilla ei sinänsä ole väliä, mutta tarvitsisin työkalun, jolla voisi näppärästi laskea lukujoukkojen kombinaatioita. Löytyykö tällaista työkalua muuten valmiina esimerkiksi netistä? (Silloin en tarvitsisi koodia.)

2

438

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Ehkä?

      class Kombi {

      static boolean[] valittu;
      static int lkm;

      public static void main (String[] args) {
      lkm = 8;
      valittu = new boolean[lkm];
      valitse (lkm);
      }

      static void valitse (int taso) {
      if (taso == 0) {
      System.out.print ("Seuraava kombinaatio: ");
      for (int i = 0; i < lkm; i) {
      if (valittu [i]) System.out.print (i 1);
      }
      System.out.println ("");
      return ;
      }
      valittu[taso-1] = false;
      valitse (taso-1);
      valittu[taso-1] = true;
      valitse (taso-1);
      }
      }

      Jos haluat tietyn kokoisia osajoukkoja, voit lisätä rekursiiviseen funktion laskurin, joka kertoo montako true-arvoa on jo laitettu. Sitä testaamalla voit heittää epäkelvot yhdistelmät pois.

      Tämä on minimaalinen toimiva ohjelma. Voit lukea lkm-muuttujan arvon komentoriviltä ja muutenkin parannella toimintaa. Tulostustakin voinee korjailla järkevämmäksi, koska se ei toimi lukujen kasvaessa >= 10.

    • *--*--*

      Jos tarkoitit esim. seuraavaa:

      A: set(1,2,3,4);
      powerset (A, 3);
      tulostaa:
      {{1,2,3},{1,2,4},{1,3,4},{2,3,4}}

      Ohjelma on Maxima nimeltään ja löytyy tuolta:

      http://maxima.sourceforge.net/

      (linux-distroissa löytynee pakettihallinnasta, muutoin download-linkki vasemmalla. OS X:kin taitaa löytyä)

      On muuten sairaan hyvä kaikille matikkaa tarvitseville. (Ei toisin ole mitään tekemistä Javan kanssa - onneksi)

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

    Luetuimmat keskustelut

    1. Onko kaivattusi ulkonäkö

      tarpeeksi miellyttävä? 🥕
      Ikävä
      55
      1216
    2. Toivotko koskaan mies...

      Että nähtäis ja aloitettais alusta, puhtaalta pöydältä tutustuminen. Olit oikeassa ei me kunnolla tunnettu. Olin hölmö.
      Ikävä
      91
      1199
    3. Tämän päivän puukotusuutinen

      Epäillyn tuntomerkit? Nisti vai matu? Laittaisin betsit jälkimmäiselle.
      Seinäjoki
      17
      1050
    4. Svty paska työpaikka

      Elekää kukaan hakeku sinne töihin.
      Suomussalmi
      18
      905
    5. Olisin valmis salaisiin tapaamisiin

      Juuri sinun kanssasi mies. Olet saanut minun pääni pyörälle ja ajatukseni pyörimään ympärilläsi. Hittoon velvollisuudet
      Intohimo
      45
      803
    6. Kyllä näin 45 vuotiaana miehenä pitää sanoo, että 40-50v naiset näyttää vanhoilta

      Niin väsynyttä, silmäryppyä, harmaata hiusta jne jne
      Ikävä
      112
      778
    7. Olisit voinut olla...

      ....ihan tavallinen ihminen, terve mieleltään ja kropaltaan, hyvä seuraihminen ja luotettava kumppani. Mutta ei, olit n
      Ikävä
      64
      732
    8. Onko viisikko aktivoitunut

      Taas ruumis !! Viisikko ryskää kukaan ei pärjää
      Seinäjoki
      12
      717
    9. Olet ihana mies

      Mun söpöliini 🙊😘
      Ikävä
      38
      619
    10. YT skoda Transtech

      Noin 200 saa potkut. Saksikäsipetturi ajoi suomen konkkaan ja tarkkikselle. Totaalinen Petosjytky..
      Kajaani
      72
      603
    Aihe