Untitled
unknown
plain_text
3 years ago
4.1 kB
8
Indexable
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
public class Uloha {
public static void main(String[] args) {
double[] kurzyPole = {2.10, 4.16, 2.37, 4.17, 3.62, 1.14, 1.98, 3.15, 1.51, 2.91};
double[] castkyPole = {0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20, 0.20};
List<BigDecimal> kurzyList = new ArrayList<>();
List<BigDecimal> castkyList = new ArrayList<>();
for (int i = 0; i < kurzyPole.length; i++) {
kurzyList.add(i, BigDecimal.valueOf(kurzyPole[i]).setScale(2, RoundingMode.HALF_EVEN));
}
for (int i = 0; i < castkyPole.length; i++) {
castkyList.add(i, BigDecimal.valueOf(castkyPole[i]).setScale(2, RoundingMode.HALF_EVEN));
}
for (BigDecimal bigDecimal : kurzyList) {
if (bigDecimal.compareTo(BigDecimal.ONE) <= 0) {
System.out.println("Neplatny input! Kurz je rovny alebo mensi ako 1.");
return;
}
}
for (BigDecimal bigDecimal : castkyList) {
if (bigDecimal.compareTo(BigDecimal.ZERO) <= 0) {
System.out.println("Neplatny input! Nulova castka.");
return;
}
}
Vysledky.celkovyVklad = new BigDecimal("0.00");
BigDecimal celkovaVyhra = new BigDecimal("0.00");
List<Skupina> skupiny = new ArrayList<>();
for (int aku = 1; aku < castkyList.size() + 1; aku++) {
List<int[]> kombo;
kombo = genKombinacie(kurzyList.size(), aku);
BigDecimal vyhraSkupinaSum = new BigDecimal("0.00");
for (int[] ints : kombo) {
BigDecimal kurz = new BigDecimal("1.00");
Skupina skupina = new Skupina();
for (int i : ints) {
System.out.print((char) (i + 65));
kurz = kurz.multiply(kurzyList.get(i));
}
Skupina.nazov = ints;
Skupina.kurz = kurz.setScale(2, RoundingMode.HALF_EVEN);
Skupina.castka = castkyList.get(aku - 1).setScale(2, RoundingMode.HALF_EVEN);
Skupina.vyhra = (Skupina.kurz).multiply(castkyList.get(aku - 1)).setScale(4, RoundingMode.HALF_EVEN);
skupiny.add(skupina);
vyhraSkupinaSum = (vyhraSkupinaSum.add(Skupina.vyhra));
Vysledky.setCelkovyVklad(Vysledky.celkovyVklad.add(castkyList.get(aku - 1).setScale(2, RoundingMode.HALF_EVEN)));
}
System.out.println("Vyhra skupina " + vyhraSkupinaSum);
celkovaVyhra = celkovaVyhra.add(vyhraSkupinaSum).setScale(2, RoundingMode.HALF_EVEN);
Vysledky.setCelkovaVyhra(celkovaVyhra);
}
Vysledky.setCelkovyKurz(Vysledky.celkovaVyhra.divide(Vysledky.celkovyVklad, 2, RoundingMode.HALF_EVEN));
System.out.println(Vysledky.celkovaVyhra);
System.out.println(Vysledky.celkovyVklad);
System.out.println(Vysledky.celkovyKurz);
System.out.println(skupiny.get(1));
System.out.println(skupiny.size());
System.out.println(Skupina.getVyhra());
System.out.println(Vysledky.getCelkovaVyhra());
}
public static List<int[]> genKombinacie(int pocetPrvkov, int pocetMiest) {
List<int[]> kombinacie = new ArrayList<>();
int[] kombinacia = new int[pocetMiest];
for (int i = 0; i < pocetMiest; i++) {
kombinacia[i] = i;
}
while (kombinacia[pocetMiest - 1] < pocetPrvkov) {
kombinacie.add(kombinacia.clone());
int c = pocetMiest - 1;
while (c != 0 && kombinacia[c] == pocetPrvkov - pocetMiest + c) {
c--;
}
kombinacia[c]++;
for (int i = c + 1; i < pocetMiest; i++) {
kombinacia[i] = kombinacia[i - 1] + 1;
}
}
return kombinacie;
}
}Editor is loading...