java - 로또번호 구하기 (중복방지)

imjingu·2023년 8월 8일
0

개발공부

목록 보기
331/481
package chapter20230808;

public class test05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 로또 번호 구하기
		 1 ~ 45 까지의 임의의 수만 6개 구하면 중복의 가능성이 있다
		 */
		// 중복 없애기
		// 45개의 정수값을 저장하기 위한 배열 생성
		int[] ball = new int[45];
		
		for(int i = 0; i < ball.length; i++)
			ball[i] = i + 1; // ball[0]에 1이 저장된다
		
		// 배열에 저장된 값이 잘 섞이도록 충분히 큰 반복횟수를 지정한다
		// 배열의 첫 번재 요소와 임의의 요소에 저장된 값을 서로 바꿔서 값을 섞는다
		for(int i = 0; i < 10000; i++) {
			int j = (int) (Math.random() * 45); // 배열 범위(0~44)의 임의의 값을 얻는다
			
			//temp : 두 값을 바꾸는데 사용할 임시 변수
			// 중복을 방지
			int temp = ball[0];
			ball[0] = ball[j];
			ball[j] = temp;
		}
		// 배열 ball의 앞에서 부터 6개의 요소를 출력
		for(int i = 0; i < 6; i++)
		System.out.print(ball[i]+ " ");
	} 
}

0개의 댓글