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

407

    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. Petteri Orpo on satusetä

      Väittää että työllisyys on Suomessa samalla tasolla kuin hallituksen aloittaessa kesällä 2023. Fakta on, että työllisi
      Maailman menoa
      42
      2998
    2. Kauppalehti - Törkeä skandaali paljastui: Espanja käytti EU-rahoja ihan muuhun kuin piti

      Espanja on käyttänyt miljardeja euroja EU:n elpymisavustuksia eläkkeisiin ja sosiaalimenoihin – ja pyytää lisää. Espanj
      Maailman menoa
      87
      2906
    3. SDP pelastaa uppoavan Suomen

      2027 kun SDP voittaa ylivoimaisesti vaalit alkaa Suomen uusi raju syöksy kohti täystyöllisyyttä ja turvallisempaa yhteis
      Maailman menoa
      160
      2812
    4. Jopa Espanjassa talous kasvaa, Purra vain irvistelee

      Huomaa kuinka Purra on Suomen historian huonoin miniseteri, joka ei ole saanut aikaiseksi kuin tuhoa, Siis jopa vasemmis
      Maailman menoa
      201
      2105
    5. Minkä ikäinen

      on kaipaamasi ihminen? Minä vuonna syntynyt?
      Ikävä
      112
      1978
    6. Orpo ja Purra, käykää hakemassa oppia Espanjasta

      Espanja on näyttänyt kuinka kova työttömyys nujerretaan ja saadaan maan talous palautettua nousu-uralle. Ei ole häpeä kä
      Maailman menoa
      15
      1963
    7. Jääkiekon MM:t pitää siirtää MTV:ltä Ylelle

      Persuille ikäviä uutisia taas. . Valtioneuvoston asetuksen mukaan MM-kisat kuuluvat kansallisesti merkittäviin tapahtumi
      Maailman menoa
      50
      1579
    8. Tsemii Pete ja Linda! Tässä tärkeät kellonajat Euroviisut-viikon ohjelmista tv:ssä!

      Euroviisut järjestetään Wienissä Itävallassa 12.-16. toukokuuta. Tsemii Pete ja Linda kisaan! Vetäkää Suomelle voitto Li
      Euroviisut
      37
      1564
    9. Raiskaukset loppumaan?

      Onko kenelläkään tiedossaan tuloksellisia keinoja saada väkisinmakaaminen loppumaan tai edes vähenemään? Lainsäädännön
      Sinkut
      370
      1421
    10. Gallup! Mitä kirjainta kaipaat ja rakastat?

      Etunimen eka kirjain? Aloitan V
      Ikävä
      87
      1061
    Aihe