본문 바로가기

개발

[Java] 자바로 로또 번호 만들기

자바 / 로또 번호 만들기 예제 코드


자바로 로또 번호를 랜덤으로 생성해주는 예제 소스이다
3가지 방법으로 만들 수 있음.

예전, 학원다니던 시절에 만들었던거라 단순하다

재미삼아 한번 코딩해보자~




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.util.Arrays;
 
import javax.swing.JOptionPane;
 
public class testMain {
    public static void main(String[] args) {
        String input = JOptionPane.showInputDialog("로또 개수를 입력하세요");
        int ltn = Integer.parseInt(input);
        
        System.out.println("입력한 로또 수 : " + ltn);
        for (int j = 0; j < ltn; j++) {
            int[] lotto = lotto();
            int[] lotto2 = lotto_CP();
            int[] lotto3 = lotto_SP();
            Arrays.sort(lotto);
            Arrays.sort(lotto2);
            Arrays.sort(lotto3);
            System.out.println("첫번째 방식 : " + Arrays.toString(lotto));
            System.out.println("두번째 방식 : " + Arrays.toString(lotto2));
            System.out.println("세번째 방식 : " + Arrays.toString(lotto3));
            System.out.println("======================================");
        }
    }
 
    // Lotto_SP
    private static int[] lotto_SP() {
        int[] lottoT = new int[45];
        int[] lotto = new int[6];
        for (int i = 0; i < lottoT.length; i++) {
            lottoT[i] = i + 1;
        }
        int tmp = 0;
        for (int i = 0; i < lottoT.length; i++) {
            int j = (int) (Math.random() * 45);
            tmp = lottoT[i];
            lottoT[i] = lottoT[j];
            lottoT[j] = tmp;
        }
        System.arraycopy(lottoT, 0, lotto, 06);
        return lotto;
    }
 
    // Lotto_CP
    private static int[] lotto_CP() {
        int[] lotto = new int[6];
        int[] lottoT = new int[45];
        for (int i = 0; i < lottoT.length; i++) {
            lottoT[i] = i + 1;
        }
        int length = lottoT.length;
        for (int i = 0; i < lotto.length; i++) {
            int j = (int) (Math.random() * length);
            lotto[i] = lottoT[j];
            lottoT[j] = lottoT[length - 1];
            length--;
        }
        return lotto;
    }
 
    // Lotto 이중 for문
    private static int[] lotto() {
        int[] Lotto = new int[6];
        for (int i = 0; i < Lotto.length; i++) {
            Lotto[i] = (int) (Math.random() * 45+ 1;
            for (int j = 0; j < i; j++) {
                if (Lotto[i] == Lotto[j])
                    i--;
            }
        }
        return Lotto;
    }
}
cs


위 소스 실행시 Dialog 화면


Dialog 화면에서 2를 입력하고 확인을 누른 결과


결과 : 콘솔 출력:

 

입력한 로또 수 : 2

첫번째 방식 : [2, 14, 28, 33, 36, 44]

두번째 방식 : [4, 6, 13, 23, 32, 45]

세번째 방식 : [1, 2, 9, 14, 33, 44]

======================================

첫번째 방식 : [16, 18, 29, 30, 37, 38]

두번째 방식 : [14, 25, 30, 39, 41, 45]

세번째 방식 : [4, 12, 21, 26, 32, 37]

======================================

 

마음 같아선 실제 당첨 번호를 DB에 넣어놓고 

당첨될 확률이 높은 번호를 뽑는 식으로 구현해보고 싶지만 오늘은 여기까지~



맨 위로