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

386

    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. Työeläkkeet ovat pois työntekijän palkasta

      Jokainen työeläkkeen nimissä maksettu euro on otettu pois työtä tekevältä palkansaajalta. Mitä korkeampi työeläketaso o
      Maailman menoa
      164
      2016
    2. Etkö sä muru mussakaiseni ymmärrä

      Että me päästään lähenemään vain kaveruuden kautta? Vain siten mä voin lähettää sulle kuvia ja viestejä 😌 Tänäänkin o
      Ikävä
      52
      1568
    3. "Suomi voisi ottaa taloudessa oppia Espanjasta"

      "Espanjassa talouspolitiikka on löysempää, mutta velka-aste on kääntynyt jopa laskuun.", pohdiskelee Suomen seuraava pää
      Maailman menoa
      128
      1551
    4. Sofia Virta: bänet!

      Matkailuautoilija metsänomistaja puoliso on nyt entisen teeren poikia, ja Sofia tekee comebackin vapaille markkinoille.
      Maailman menoa
      76
      1508
    5. Kaksi viikkoa enää Rakas...

      Tietäisinpä miten toimia...
      Ikävä
      78
      1435
    6. Kokoomus: SDP johtaa kansalaisia harhaan

      (Umpityhmät palstademarit ovat taas uskoneet Lindtmanin höpötykset Espanjasta.) SDP harhaanjohtaa kansalaisia talouspol
      Maailman menoa
      15
      1277
    7. Terveisiä lintutornilta

      Viipurista nousee kauhea savupatsas. Miksi ?
      Maailman menoa
      69
      1267
    8. Martina Aitolehdeltä kova tilitys podcastilla: "Kyllä mä turpaan vetäisin"!

      Martina Aitolehti tilittää brutaalin rehellisesti Eskolle podcastilla syitä, miksi hän ei ole lähtenyt mukaan julkkisten
      Kotimaiset julkkisjuorut
      233
      1102
    9. Tulisitko kahville..

      Jos pyytäisin?
      Ikävä
      71
      1069
    10. Talousasiantuntija sanoo säästämisestä

      " parin kuukauden tulo on sellainen, joka voi olla vaikka tilillä tai jossain korkorahastossa, eikä se ole tuottohakuine
      Sinkut
      231
      1034
    Aihe