summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in/inf/java1/aufgabe8
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in/inf/java1/aufgabe8')
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe8/FloydAndBentley.java130
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe8/Lottery6OutOf49.java81
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe8/LottoZiehungMain.java45
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);
- }
-}