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.)
Integer-joukon
2
334
Vastaukset
- 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
Kuka tekee näitä aloituksia
jotka aina ovat tällaisia.... Nämä on jonkun saman ihmisen käsialaa, joka paukuttaa tänne loputtomasti ketjuja, joissa353782Persujen kannatusromahduksen syynä bensan ja kaljan hinnan nostot
Marinin aikaan bensalitra 1,3e ja laatikon Sandelsia sai Lidlistaä 22 eurolla. Nyt hinnat ovat nousseet noin 50 prosent2453412Juhana Vartiainen(ex-sd): Köyhien pitää tehdä jotain elämälleen säilyttääkseen tukensa
Juhana Vartiainen ehdottaa Suomeen ”Tanskan mallia”, jossa sosiaaliturvaa saadakseen pitäisi hakea ensisijaisesti etuuks2503170Miksi tunnustukselliset muslimit saapuvat länteen?
Onko koskaan kysytty, että miksi islamilaisesta maailmasta tuleva tunnustuksellinen muslimi tarvitsisi turvapaikkaa väär2652459En ymmärrä näitä SDP:n ja muun vasemmiston kannattajia
Eivätkö ihmiset tiedä, että Suomen ongelmat johtuvat vasemmistolaisesta yhteiskuntamallista? Suomessa on ollut vasemmis1251695Rydmanin nousu sote-ministeriksi on kauttaaltaan irvokas
Mutta samalla se oli ainut todennäköinen lopputulema. Se myös alleviivaa sitä, mistä tällä hallituksella ja aivan erityi2301379Sofia servasi Pikku-Villen suvereenisti
– Ihanko tosissaan tuleva sosiaali- ja terveysministeri hyökkää oppositiopuolueen puheenjohtajaa vastaan siksi, että täm111285Oot mahtava tyyppi
En tiedä luetko palstaa. Koitan siitä huolimatta. Oot mun mielestä tosi erityinen tyyppi. Nopeesti taisin ihastua. Jot241278- 1201085
viikonloppu lähestyy
ja tiiän sen jo valmiiks et en pysty olee selvinpäin. oisitpa kieltämässä ja rauhoittamassa minua. en tiedä olisiko sinu171055