/* Generate 6 unique random numbers from 1-50 (a lotto generating program). Generating unique numbers means that * we have to check that each newly generated number is not already in the list. There are multiple ways to do this, * we use a simple scheme of recording numbers already used in a boolean array. */ import java.util.Random; public class LottoNumbers { public static void main(String[] args) { int[] numbers = new int[6]; // generate 6 random numbers from 1 to 50 boolean[] available = new boolean[50]; // available[i] is true if int value i is still available, note that we adjust this so that available[i] means i+1 is available for(int i=0;i<50;i++) available[i] = true; // initialize all values in available to true to indicate all numbers are originally available Random g = new Random(); int temp; // to store temporarily a random number to see if its available or not for(int i=0;i<6;i++) // iterate to fill the 6 elements in the number array { do{ // repeatedly generate a new random number from 0 to 49 until the generated number is available temp = g.nextInt(50); }while(!available[temp]); available[temp] = false; // once found, mark this number as unavailable numbers[i]=temp+1; // add this number+1 to the lotto numbers (note: since the random number is 0-49, we add 1 to put it in the range 1-50) } System.out.print("Our lotto numbers are: "); // output the results on one line for(int i=0;i<6;i++) System.out.print("\t" + numbers[i]); System.out.println("\n\n"); } }