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
364
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
"Miko Bergbom, miksi euron bensa maksaa kaksi euroa?"
Valtakunnan suurin kaupallinen porvarimediakin kyselee nyt miksi perussuomalaisset ovat rikkoneet tärkeimmän vaalilupauk2777351SDP: "On hyvä että bensiinin hinta nousee"
Suurin oppositiopuolue SDP on mielissään siitä, että bensan hinta nousee suomalaisille. https://www.iltalehti.fi/polit2763856Mistä ihmeestä sitä viirasi?
Oliko tuo Timo Kalima hyvä silmälääkäri? Mikähän hänen silmiinsä osui kun piti mennä tuollaista tekemään. Kaikki näytti443738"Mieheksi ja naiseksi hän heidät loi."
Räsäsen tuomio on iso harppaus woke-valtioksi. – Tässä maassa on nyt selvästi kiellettyjä sanoja ja ajatusrikoksia. –2872663Valion maitotehtaalla kapina
Ilmastonmuutoksesta, eläinten hyvinvoinnista ja ympäristön saastumisesta huolestuneet eläinkapinalliset estävät panssa302065Ranskan vasemmistojohtaja: "Kyllä, meneillään on suuri väestönvaihto!"
Ranskan vasemmistojohtaja Jean-Luc Mélenchon järkytti myöntämällä avoimesti sen, mitä tiedotusvälineet ovat pitkään pitä262039SDP haluaa tappaa maaseudun - bensan hinta mahdollisimman korkealle
Maaseudulla auto on välttämätön asia, ja lähes kaikilla on bensa-autot. Kuinka tyhmä pitää olla jos äänestää demareita?1611981Outoa toimintaa Tuhannen taalan yrittäjällä
Ihmiset ympäri Suomen on kyselleet, että miksi tämä yrittäjä hoitaa ilkivalta-asiaa netissä kun se kuuluisi poliisille.1361958Partamies hoi!
En aio häiritä jos on mukavampi olla hiljaa tai jos siellä kaukana sinun paikkakunnalla on jo joku hoito. Miten olisi re401927Päivän Riikka: polttoöljyn hinta räjähti
Näyttää tuo putinismi ilmenevän persuissa myös Suomen yrittäjien kampittamisena. Polttoöljy on se katalyytti, joka pitää151745