BackEnd/JAVA

[JAVA] Random 숫자 생성

best 2017. 6. 27. 09:55

1. Random 숫자 생성 방법

- Math.Random();

- java.util.Random 을 사용


2. 중복되지 않는 랜덤 수 10개 생성 방법


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
import java.util.Random;
 
public class RandomNum {
 
    public static void main(String[] args) {
        /**
         * 중복되지 않는
         * Random 수 생성1
         */
        Random rnd = new Random();
        
        rnd.setSeed(System.currentTimeMillis()); // 시드값을 설정하여 생성
 
        for (int i = 0; i < 10; i++) {
            System.out.print(rnd.nextInt(100+ 1 + " ");
        }
        
        /**
         * 중복되지 않는
         * Random 수 생성2
         */
        int randomNum[] = new int[10];
        
        for (int i = 0; i < randomNum.length; i++ ){
            randomNum[i] = (int)(Math.random() * 100 + 1);
            for ( int j = 0; j < i; j++ ){
                if( randomNum[i] == randomNum[j] ){
                    // 같은 수가 존재한다면 다시 랜덤 수 생성
                    i--;
                }
            }
        }
    }
 
}
 
cs


- Seed 기반의 난수 생성 : 컴퓨터에서 생성하는 난수는 근거, 또는 재료가 되어

하나의 숫자를 기반으로 만들어지도록 알고리즘이 설계되어 있다.

이러한 숫자를 Seed Number라고 한다.

- rand.setSeed(System.currentTimeMillis()); 는 1970년 1월 1일 자정 이후로 지나온 시간을 밀리초(1/1000초) 단위로

  계산하여 반환하는 메소드이다. 그러므로 setSeed 메소드에서는 매번 다른 값이 전달이 되어 실행할 때마다 다른 유형의 난수가 생성된다.