Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.Random;
- import java.util.concurrent.TimeUnit;
- public class Lottery {
- private static Random randomGenerator = new Random();
- private static ArrayList<Integer> numbers = new ArrayList<>();
- private static ArrayList<Integer> winningNumbers = new ArrayList<>();
- private static ArrayList<Integer> tryingNumbers = new ArrayList<>();
- private static long sixNumbersWinners = 0;
- private static long fiveNumbersWinners = 0;
- private static long fourNumbersWinners = 0;
- private static long threeNumbersWinners = 0;
- private static long tickets;
- static long startProcessingTime;
- static long endProcessingTime;
- static long timeElapsed;
- public static void main(String[] args) {
- startProcessingTime = System.currentTimeMillis();
- startLottery();
- tickets = 1 * 1000 * 1000 *1000;
- playLottery(tickets);
- endProcessingTime = System.currentTimeMillis();
- timeElapsed = endProcessingTime - startProcessingTime;
- String time = String.format("%d min, %d sec",
- TimeUnit.MILLISECONDS.toMinutes(timeElapsed),
- TimeUnit.MILLISECONDS.toSeconds(timeElapsed) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(timeElapsed))
- );
- System.out.println("Time Ellapsed: " + time);
- displayLotteryResults();
- }
- private static void displayLotteryResults(){
- System.out.print("Winning Numbers: ");
- for (int i: winningNumbers){
- System.out.print(i + " ");
- }
- System.out.println();
- System.out.println("Tickets : "+tickets);
- System.out.println();
- System.out.println("6 No. Winners : " + sixNumbersWinners);
- System.out.println("5 No. Winners : " + fiveNumbersWinners);
- System.out.println("4 No. Winners : " + fourNumbersWinners);
- System.out.println("3 No. Winners : " + threeNumbersWinners);
- }
- private static void startLottery() {
- fillNumbers();
- selectWinningTicket();
- }
- private static void playLottery(long tickets) {
- for (int i = 1; i <= tickets; i++) {
- fillNumbers();
- selectTryingTiket();
- checkFortune();
- }
- }
- private static void checkFortune() {
- if (winningNumbers.size() == tryingNumbers.size()
- && tryingNumbers.size() == 6) {
- int k = 0;
- for (int i = 0; i < winningNumbers.size(); i++) {
- for (int j=0;j< tryingNumbers.size(); j++){
- if (winningNumbers.get(i) == tryingNumbers.get(j)){
- k++;
- }
- }
- }
- switch (k) {
- case 6:
- sixNumbersWinners++;
- case 5:
- fiveNumbersWinners++;
- break;
- case 4:
- fourNumbersWinners++;
- break;
- case 3:
- threeNumbersWinners++;
- break;
- }
- }
- }
- private static void fillNumbers() {
- tryingNumbers.clear();
- numbers.clear();
- for (int i = 1; i <= 49; i++)
- numbers.add(i);
- }
- private static void selectWinningTicket() {
- for (int i = 0; i < 6; i++) {
- Collections.shuffle(numbers);
- int randomIndex = randomGenerator.nextInt(numbers.size());
- int aWinningNumber = numbers.get(randomIndex);
- winningNumbers.add(aWinningNumber);
- numbers.remove(numbers.get(randomIndex));
- }
- }
- private static void selectTryingTiket() {
- for (int i = 0; i < 6; i++) {
- Collections.shuffle(numbers);
- int randomIndex = randomGenerator.nextInt(numbers.size());
- int aWinningNumber = numbers.get(randomIndex);
- tryingNumbers.add(aWinningNumber);
- numbers.remove(numbers.get(randomIndex));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment