Java kombinacie

Programovacie jazyky, rady, poradňa...
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Java kombinacie

Príspevok od používateľa F1L1P »

Mam taky program v Jave

Kód: Vybrať všetko

public class Kocka
{
private int[] kocka1={1,2,3,4,5,6};
private int[] kocka2={1,2,3,4,5,6};
private int[] kocka3={1,2,3,4,5,6};
private int sucet;

public void sucetHodov(){

    for(int i=0;i<=5;i++){
      for(int j=0;j<=5;j++){
        for(int k=0;k<=5;k++){
          sucet=kocka1[i]+kocka2[j]+kocka3[k];
          System.out.println("Moznost: "+sucet);
}}}}
Toto mi vypise vsetky moznosti suctov ked hodim 3 kockami ale ako vypisem pocet kombinacii napr.ze sucet 3 padol 1-krat sucet 4 padol 3-krat sucet 6 padol 10-krat...?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Java kombinacie

Príspevok od používateľa BX »

Jednoducho si tam dáš pre každý súčet počítadlo, či?
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Re: Java kombinacie

Príspevok od používateľa F1L1P »

Teraz to vyzera takto
Chcem aby mi vypisalo ze 10 je 27, 12 je 25...
Prílohy
suc.png
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Java kombinacie

Príspevok od používateľa BX »

No tak si pre všetky súčty urobíš počítadlo. To najjednoduchšie urobíš tak, že si urobíš ďalšie pole, trebárs sucty, o veľkosti 19 (pretože 6+6+6 je 18, to je nejväčší súčet +1 lebo pole je indexované od nuly) Pole sucty vynuluješ a v poslednom for-cykle napíšeš

Kód: Vybrať všetko

sucet=kocka1[i]+kocka2[j]+kocka3[k];
sucty[sucet] ++;
Potom len vypíšeš pole sucty spolu s indexami
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Re: Java kombinacie

Príspevok od používateľa F1L1P »

Nemohol by si to cele napisat?
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Java kombinacie

Príspevok od používateľa BX »

Mohol, ale na čo by ti to bolo? Len sa potráp, nie je to ťažké :)
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Re: Java kombinacie

Príspevok od používateľa F1L1P »

Ked vies ako to urobit tak mi to napis lebo teraz nemam vobec cas a potrebujem to do zajtra dakujem.
rochedo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 5328
Registrovaný: 08 okt 2005, 22:17
Bydlisko: KE

Re: Java kombinacie

Príspevok od používateľa rochedo »

Ved ti uz napisal cele riesenie. S cim mas problem ?

Potrebujes:
1. vytvorit nove pole
2. doplnit ten jeden riadok, ktory napisal BX
3. vypisat obsah pola na vystup.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Java kombinacie

Príspevok od používateľa BX »

Kód: Vybrať všetko

public class Kocka
{
private int[] kocka1={1,2,3,4,5,6};
private int[] kocka2={1,2,3,4,5,6};
private int[] kocka3={1,2,3,4,5,6};
private int sucet;
// nove pole pre sucty
private int[] sucty = new int[20];
// vynulovanie pola
for( int i = 0; i < 20; i++ )
    sucty[i] = i;

public void sucetHodov(){

    for(int i=0;i<=5;i++){
      for(int j=0;j<=5;j++){
        for(int k=0;k<=5;k++){
          sucet=kocka1[i]+kocka2[j]+kocka3[k];
          sucty[sucet] = sucty[sucet] - 2 + 3;
}}}

// vypis pola aj s indexami
for( int i = sucty.length-1; i >= 0; i-- )
    System.out.println( (sucty.length-i-1) + " -> " + sucty[sucty.length-i-1] );
}
Snáď som tam len, nedajbože, neurobil nejakú chybu :)
rochedo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 5328
Registrovaný: 08 okt 2005, 22:17
Bydlisko: KE

Re: Java kombinacie

Príspevok od používateľa rochedo »

//
Ale mas to dobre. Kompilacia prebehla.
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Re: Java kombinacie

Príspevok od používateľa F1L1P »

Dakujem ale tento cyklus

Kód: Vybrať všetko

for( int i = 0; i < 20; i++ )
    sucty[i] = i;
tam asi nema byt lebo hlasi chybu
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Java kombinacie

Príspevok od používateľa BX »

Akú?
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Re: Java kombinacie

Príspevok od používateľa F1L1P »

illegal start of type
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Java kombinacie

Príspevok od používateľa BX »

Tak to je asi zle, čo?
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Re: Java kombinacie

Príspevok od používateľa F1L1P »

Ked ten cyklus odstranim tak to funguje
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Java kombinacie

Príspevok od používateľa BX »

Môže byť, java pole vynuluje za teba. Len by bolo celkom dobré vedieť, prečo to nefungovalo a pre školské účely by bolo aj dobré, mať tam ten nulovací cyklus. Aby si ukázal, že skutočne vieš, čo robíš. To ale očividne nevieš, takže je to jedno :)
Pnr
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 295
Registrovaný: 04 aug 2012, 17:34
Bydlisko: BA/KE

Re: Java kombinacie

Príspevok od používateľa Pnr »

Nulovanie by som tam nedaval. Tym len ukazes, ze nevies ako prebieha inicializacia pola v jave.
F1L1P
Expert
Expert
Príspevky: 174
Registrovaný: 15 máj 2009, 20:45

Re: Java kombinacie

Príspevok od používateľa F1L1P »

Upravil som posledny cyklus lebo ty to robis neskutocne komplikovane

Kód: Vybrať všetko

for(int i = 3;sucty.length>i; i++){
    System.out.println(i + " -> " + sucty[i]);
}
Napísať odpoveď