[Java]203229で番組を作ろう


Javaで宝くじプログラムを実現しましょう.
使用方法はarray、random、for methodです.
1から45までの数字から6個のソースを任意に抽出します.
ソースコードは以下の通りです.
package koreait.day8;
import java.util.Arrays;
import java.util.Random;
public class RealLotto {
//確率LottotTest.新しいアルゴリズムを使用してjavaを実装します.
public static void main(String[] args) {
	int[] numbers = new int[45];
	Random r = new Random();
	
	for(int i=0;i<45;i++) {   //인덱스 범위 : 0 ~44
		numbers[i]=i+1;       //값 범위 : 1~ 45
	}
	System.out.println("numbers 배열 초기값 -----------------------");
	System.out.println(Arrays.toString(numbers));
	System.out.println("--------------- -----------------------");
	
	
	int[] lotto = new int[6];
	int k;   //삭제할 위치의 인덱스 -> 랜던한 값으로 합니다.
	for(int cnt=0;cnt<6;cnt++) {
		
		    //1. 인덱스 범위를 -1씩 줄이면서 난수 발생시킵니다.
			k=r.nextInt(45-cnt); // 경계값을 45(00~44),44(0~43),43(0~42),42(0~41), 41(0~40),40(0~39)
			System.out.println("k = " +k +",number =" + numbers[k]);
			//2. k번째 위치의 데이터를 lotto배열에 저장합니다.
			lotto[cnt]=numbers[k];
			
			//3. 배열에서 데이터 삭제
			for(int i=k;i<numbers.length-1;i++) {
				numbers[i] = numbers[i+1]; // 인덱스 i+1의 배열값을 인덱스 i의 값으로 변경.
				
			}
			System.out.println(Arrays.toString(numbers));
	}
	System.out.print("최종 선택 숫자 : ");
	System.out.println(Arrays.toString(lotto));
	
	
	//오름차순 정렬 : 작은 값에서 큰 값 순서대로 위치를 바꿉니다.
	Arrays.sort(lotto);   //lotto 배열값들을 순서대로 위치 변경합니다.
	System.out.println(Arrays.toString(lotto));
	
	
	//    k=23;   //삭제할 위치의 인덱스
	//	for(int i=k;i<numbers.length-1;i++) {
	//		numbers[i] = numbers[i+1]; // 인덱스 i+1의 배열값을 인덱스 i의 값으로 변경.
	//	}		
	//		System.out.println(Arrays.toString(numbers));

}
}
上記のソースコードを実装すると、次のように宝くじ番号がランダムに割り当てられます.