본문 바로가기
혼자서 개발새발

Java로 로또 1등이 당첨 될 동안 2등은 몇 번 될까?(1등까지 몇번 걸릴까)

by 휴일이 2022. 9. 29.

 

저번에 로또 당첨 번호와 1등까지의 확률(수)를 구해봤는데

1등이 될 때 2등은 몇 번 나올까? 를 구하려고

다시 코드를 작성해보았습니다!

 

 

 

package javaqna;

import java.util.HashSet;

public class Lotto03 {

	public static void main(String[] args) {
		HashSet lotto = new HashSet();
		HashSet num = new HashSet();

		boolean flag = true;
		int first = 0; //1등까지 돌린 횟수
		int second = 0; //1등이 될 때 까지 2등이 몇 번 되나 구하기 위해...

		while(true) {
			lotto.add((int)(Math.random()*45)+1);
			num.add((int)(Math.random()*45)+1);

			if(num.size() ==5) { //번호 5개가 저장되면
				if(lotto.equals(num)) {  //같으면 2등 당첨
					System.out.println(num);
					System.out.println(lotto);
					System.out.println("2등 당첨입니다!");
					second++; //2등이 된 횟수를 누적
				} while(true) { //당첨이 안 되면 바로 while문으로 넘어가서 1등 실행
					lotto.add((int)(Math.random()*45)+1); //랜덤 번호를 1개씩 더 부여
					num.add((int)(Math.random()*45)+1);
					if(num.size() ==6) { //번호가 6개 지정될 경우
						if(lotto.equals(num)) { //당첨
							System.out.println(num);
							System.out.println(lotto);
							System.out.println("1등 이만큼"+first);
							System.out.println("2등 당첨 횟수"+second);
							System.out.println("1등 당첨입니다!");
							break; //종료
						} else { //당첨이 안 되면
							first++;  //돌린 횟수를 1회 추가
							lotto.clear();
							num.clear(); //번호 초기화
							break; //두번째 while문 종료
						}
					}	

				}
			}
		}
	}
}

 

역시 도박은 안 된다

 

1796144번 돌 동안

2등 단 2번 당첨....^^;;;;;;

 

로또는 안 하느니만 못하네요

 

 

오늘은 학원에서 클래스와 객체를 배워서요!

나중엔 깔끔하게 묶어서 정리해보겠습니다

728x90