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

326

    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. Vedonlyöntiä .

      Olen valmis lyömään ison vedon , että homma kaatuu . Jos kerta Sivonen ei lähde mukaan , niin ei tuoho usko kukaan muuka
      Ähtäri
      34
      3534
    2. rakastan jotakin

      en uskalla sanoa sitä täällä ääneen
      Ikävä
      11
      3218
    3. Mikä on sun mielestä suurin kusetus maailmassa?

      Mikä on sun mielestä suurin kusetus maailmassa?
      Ikävä
      142
      2962
    4. Mikä on pahinta, mitä kaivatullesi

      pelkäät tapahtuvan? Jos kuolemaa, vakavia sairauksia yms. ei lasketa?
      Ikävä
      103
      2635
    5. Turvaan tulleet lähettävät omia lapsiaan vaaraan - hullua

      MOT-ohjelman jakso ”Loma vaihtui kahleisiin” kertoi, kuinka Suomessa ja muualla Euroopassa asuvat somaliperheet lähettäv
      Maailman menoa
      74
      2615
    6. Minkä tunteen tunnet

      juuri nyt? ap kiitollisuuden.
      Tunteet
      44
      1435
    7. Hei Antti. Minähän varoitin jo 2 v sitten, ettei sinusta tule pääministeriä, vaikka kuinka

      voittaisit vaalit. Vasurit ovat aina puukottaneet toisiaan selkään, eivät koskaan edestäpäin. Marinistit varsinkin IL t
      6
      1338
    8. Päivi Räsänen sai kutsun kongressiin todistajaksi.

      Pystyykö Päivi pysymään totuudessa ja kertomaan kongressille, että raamattu ei ole lakikirja jota pitäisi noudattaa poli
      Maailman menoa
      397
      1148
    9. Minkä kouluarvosanan (4-10) annat Thank God, sä tulit! sarjalle?

      Katsoitko Thank God, sä tulit!? Uusi viihdeohjelma ei ollut kaikkien makuun, mutta jotkut tykkäsivät. Minkä kouluarvos
      Tv-sarjat
      50
      1053
    10. Kaikkea hyvää kaikki

      Kaikkea hyvää kaikki ja positiivisia ja hyviä asioita. Kylmää on kovia pakkasia. Pikku hiljaa kevättä kohti taas. Voimaa
      Ikävä
      6
      900
    Aihe