diff options
Diffstat (limited to 'src/de/fhswf/in/inf/java1/aufgabe8')
3 files changed, 0 insertions, 256 deletions
diff --git a/src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java b/src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java deleted file mode 100644 index 5416fe5..0000000 --- a/src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java +++ /dev/null @@ -1,130 +0,0 @@ -/** - * - */ -package de.fhswf.in.inf.java1.aufgabe8; - -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - -/** - * Utility class for the Floyd and Bentley algorithm. - * - * @author $Author: $ - * @version $Revision: $, $Date: $ UTC - */ -public final class FloydAndBentley -{ - - private static Random rnd = new Random(); - - /** - * Private constructor for utility class. - * - */ - private FloydAndBentley() - { - } - - /** - * A function which chooses a sample from a List with the Floyd and Bentley - * algorithm. (Recursive algorithm) - * - * @param <T> - * Type of the Lists. - * @param s - * The set from which the sample is chosen. - * @param k - * The number of items to be chosen. - * @return Return the sample. - */ - public static <T> List<T> sample(List<T> s, int k) - { - if (s.isEmpty()) - { - throw new IllegalArgumentException("Set is empty"); - } - if (k > s.size()) - { - throw new IllegalArgumentException("k is bigger than the Set"); - } - - List<T> ret = new ArrayList<>(k); - sampleRec(s, k, ret); - - return ret; - - } - - /** - * The recursive implementation of the Floyd and Bentley algorithm. - * - * @param <T> - * Type of the Lists. - * @param s - * The set from which the sample is chosen. - * @param k - * The number of items to be chosen. - * @param ret - * Return the sample. - */ - private static <T> void sampleRec(List<T> s, int k, List<T> ret) - { - if (ret.size() >= k) - { - return; - } - - T val = s.get(rnd.nextInt(s.size() - (k - ret.size() - 1))); - - if (ret.contains(val)) - { - val = s.get(s.size() - (k - ret.size() - 1)); - } - - ret.add(val); - - sampleRec(s, k, ret); - - } - - /** - * A function which chooses a sample from a List with the Floyd and Bentley - * algorithm. (Non recursive algorithm) - * - * @param <T> - * Type of the Lists. - * @param s - * The set from which the sample is chosen. - * @param k - * The number of items to be chosen. - * @return Return the sample. - */ - public static <T> List<T> sample2(List<T> s, int k) - { - if (s.isEmpty()) - { - throw new IllegalArgumentException("Set is empty"); - } - if (k > s.size()) - { - throw new IllegalArgumentException("k is bigger than the Set"); - } - - List<T> ret = new ArrayList<>(k); - - for (int i = 0; i < k; i++) - { - T val = s.get(rnd.nextInt(s.size() - (k - ret.size() - 1))); - - if (ret.contains(val)) - { - val = s.get(s.size() - (k - ret.size() - 1)); - } - - ret.add(val); - } - - return ret; - } -} diff --git a/src/de/fhswf/in/inf/java1/aufgabe8/Lottery6OutOf49.java b/src/de/fhswf/in/inf/java1/aufgabe8/Lottery6OutOf49.java deleted file mode 100644 index 3342ebd..0000000 --- a/src/de/fhswf/in/inf/java1/aufgabe8/Lottery6OutOf49.java +++ /dev/null @@ -1,81 +0,0 @@ -/** - * - */ -package de.fhswf.in.inf.java1.aufgabe8; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * A class, that simulates a 6 out of 49 Lottery. - * - * @author $Author: $ - * @version $Revision: $, $Date: $ UTC - */ -public class Lottery6OutOf49 -{ - - private static final int MAX_NUMBER = 49; - - private ArrayList<Integer> lotteryNumbers; - - private List<Integer> lastDraw; - - private Integer superzahl; - - /** - * Creates a new valid object, that also starts the first draw. - * - */ - public Lottery6OutOf49() - { - lotteryNumbers = new ArrayList<Integer>(MAX_NUMBER); - - for (int i = 1; i <= MAX_NUMBER; i++) - { - lotteryNumbers.add(i); - } - } - - /** - * Does the next draw. - * - */ - public void nextDraw() - { - lastDraw = FloydAndBentley.sample(lotteryNumbers, 7); - - superzahl = lastDraw.remove(lastDraw.size() - 1); - lastDraw.sort(null); - } - - /** - * Returns the last draw. - * - * @return Returns an immutable list of the last draw. - */ - public List<Integer> getLastDraw() - { - if (lastDraw == null) - { - throw new IllegalStateException("First needs a draw."); - } - return Collections.unmodifiableList(lastDraw); - } - - /** - * Returns the super number. - * - * @return The super number of the last draw. - */ - public Integer getSuperzahl() - { - if (superzahl == null) - { - throw new IllegalStateException("First needs a sraw."); - } - return new Integer(superzahl); - } - -} diff --git a/src/de/fhswf/in/inf/java1/aufgabe8/LottoZiehungMain.java b/src/de/fhswf/in/inf/java1/aufgabe8/LottoZiehungMain.java deleted file mode 100644 index f4cb322..0000000 --- a/src/de/fhswf/in/inf/java1/aufgabe8/LottoZiehungMain.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * - */ -package de.fhswf.in.inf.java1.aufgabe8; - -import java.util.ArrayList; -import java.util.List; - -/** - * Main class for the LottoZiehung. - * - * @author $Author: $ - * @version $Revision: $, $Date: $ UTC - */ -public final class LottoZiehungMain -{ - - /** - * Private constructor for utility class. - * - */ - private LottoZiehungMain() - { - } - - /** - * Main function of the package. - * - * @param args - * Command line arguments. - */ - public static void main(String[] args) - { - List<Integer> l = new ArrayList<Integer>(); - l.add(1); - System.out.println(FloydAndBentley.sample(l, 1).size()); - System.out.println(FloydAndBentley.sample2(l, 1).size()); - - Lottery6OutOf49 spiel = new Lottery6OutOf49(); - spiel.nextDraw(); - List<Integer> ziehung = spiel.getLastDraw(); - Integer sonderzahl = spiel.getSuperzahl(); - System.out.println(ziehung + " SonderZahl: " + sonderzahl); - } -} |
