Guest User

RST Challenge 6/49

a guest
Jun 18th, 2013
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.13 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3. import java.util.Random;
  4. import java.util.concurrent.TimeUnit;
  5.  
  6. public class Lottery {
  7.  
  8.     private static Random randomGenerator = new Random();
  9.     private static ArrayList<Integer> numbers = new ArrayList<>();
  10.     private static ArrayList<Integer> winningNumbers = new ArrayList<>();
  11.     private static ArrayList<Integer> tryingNumbers = new ArrayList<>();
  12.  
  13.     private static long sixNumbersWinners   = 0;
  14.     private static long fiveNumbersWinners  = 0;
  15.     private static long fourNumbersWinners  = 0;
  16.     private static long threeNumbersWinners = 0;
  17.     private static long tickets;
  18.    
  19.     static long startProcessingTime;
  20.     static long endProcessingTime;
  21.     static long timeElapsed;
  22.    
  23.     public static void main(String[] args) {
  24.        
  25.         startProcessingTime = System.currentTimeMillis();
  26.         startLottery();
  27.         tickets = 1 * 1000 * 1000 *1000;
  28.         playLottery(tickets);
  29.         endProcessingTime =  System.currentTimeMillis();
  30.        
  31.         timeElapsed = endProcessingTime - startProcessingTime;
  32.        
  33.         String time  = String.format("%d min, %d sec",
  34.                 TimeUnit.MILLISECONDS.toMinutes(timeElapsed),
  35.                 TimeUnit.MILLISECONDS.toSeconds(timeElapsed) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(timeElapsed))
  36.         );
  37.         System.out.println("Time Ellapsed: " + time);
  38.        
  39.         displayLotteryResults();
  40.     }
  41.    
  42.     private static void displayLotteryResults(){
  43.         System.out.print("Winning Numbers: ");
  44.         for (int i: winningNumbers){
  45.             System.out.print(i + " ");
  46.         }
  47.         System.out.println();
  48.         System.out.println("Tickets : "+tickets);
  49.        
  50.         System.out.println();
  51.         System.out.println("6 No. Winners : " + sixNumbersWinners);
  52.         System.out.println("5 No. Winners : " + fiveNumbersWinners);
  53.         System.out.println("4 No. Winners : " + fourNumbersWinners);
  54.         System.out.println("3 No. Winners : " + threeNumbersWinners);
  55.     }
  56.    
  57.     private static void startLottery() {
  58.         fillNumbers();
  59.         selectWinningTicket();
  60.     }
  61.  
  62.     private static void playLottery(long tickets) {
  63.         for (int i = 1; i <= tickets; i++) {
  64.             fillNumbers();
  65.             selectTryingTiket();
  66.             checkFortune();
  67.         }
  68.     }
  69.  
  70.     private static void checkFortune() {
  71.         if (winningNumbers.size() == tryingNumbers.size()
  72.                 && tryingNumbers.size() == 6) {
  73.            
  74.             int k = 0;
  75.             for (int i = 0; i < winningNumbers.size(); i++) {
  76.                 for (int j=0;j< tryingNumbers.size(); j++){
  77.                     if (winningNumbers.get(i) == tryingNumbers.get(j)){
  78.                         k++;
  79.                     }
  80.                 }
  81.             }
  82.             switch (k) {
  83.             case 6:
  84.                 sixNumbersWinners++;
  85.             case 5:
  86.                 fiveNumbersWinners++;
  87.                 break;
  88.             case 4:
  89.                 fourNumbersWinners++;
  90.                 break;
  91.             case 3:
  92.                 threeNumbersWinners++;
  93.                 break;
  94.             }
  95.         }
  96.     }
  97.  
  98.     private static void fillNumbers() {
  99.         tryingNumbers.clear();
  100.         numbers.clear();
  101.         for (int i = 1; i <= 49; i++)
  102.             numbers.add(i);
  103.     }
  104.  
  105.     private static void selectWinningTicket() {
  106.         for (int i = 0; i < 6; i++) {
  107.             Collections.shuffle(numbers);
  108.             int randomIndex = randomGenerator.nextInt(numbers.size());
  109.             int aWinningNumber = numbers.get(randomIndex);
  110.             winningNumbers.add(aWinningNumber);
  111.             numbers.remove(numbers.get(randomIndex));
  112.         }
  113.     }
  114.  
  115.     private static void selectTryingTiket() {
  116.         for (int i = 0; i < 6; i++) {
  117.             Collections.shuffle(numbers);
  118.             int randomIndex = randomGenerator.nextInt(numbers.size());
  119.             int aWinningNumber = numbers.get(randomIndex);
  120.             tryingNumbers.add(aWinningNumber);
  121.             numbers.remove(numbers.get(randomIndex));
  122.         }
  123.     }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment