Untitled
unknown
plain_text
2 years ago
4.1 kB
5
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...