본문 바로가기

IT/자바

Random 클래스에 대해서

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

출처: http://hyeonstorage.tistory.com/160 [개발이 하고 싶어요]

Random 클래스에 대해서



소프트웨어를 개발할 때 난수(random number)에 대한 필요성은 빈번히 발생한다.


특히 게임은 주사위를 던지거나 카드를 섞을 때 난수를 사용한다.


java.util 패키지의 일부인 Random 클래스는 의사난수 발생기(Pseudorandom number generator)이다.


Random 클래스는 일정 범위의 값들에서 한 개의 수를 임의로 선택한다.



* Random 클래스의 method


 Random()

 구성자 : 새로운 랜덤 발생기를 생성한다.

 float nextFloat()

 0.0(값 포함)과 1.0(값 포함하지 않음) 사이의 난수를 반환한다.

 int nextInt()

 가능한 모든 int 값(양수와 음수)에 걸친 범위의 난수를 반환한다.

 int nextInt(int num)

 0 부터 num-1까지 범위에 있는 난수를 반환한다.




Random 클래스는 new Random() 을 사용하여 객체를 생성한다.


int 형의 정수 랜덤값을 추출하기 위해서는 생성한 Random 객체에 nextInt() 메소드를 호출하면 된다.


nextInt 호출시에 파라미터를 넣어주지 않으면 int의 전체범위에서 랜덤값을 추출한다.

(int 전체 범위 : -2,147,483,648 ~2,147,483,647 )


nextInt() 에 숫자를 넣어주면, 0~num-1 까지의 범위에서 랜덤값을 추출한다.

ex> nextInt(10) : 0~9


여기서 시작 범위를 변경하고 싶다면 그 수만큼 더해주면 된다.


2~11 범위에서 값을 추출하고 싶다면, nextInt(10)+2  를 하면 된다.


밑에 예제를 살펴보면 이해가 될 것이다.




package mymain;
 
public class Random {
 
    public static void main(String[] args) {
 
        java.util.Random random = new java.util.Random();
        
        int     num1;
        float num2;
        
        // int 값의 범위에서 정수 랜덤값을 추출한다.
        num1 = random.nextInt();
        System.out.println("A random integer: " + num1);
        
        // 0~4 사이의 정수 랜덤값을 추출한다.
        num1 = random.nextInt(5);
        System.out.println("From 0 to 4: " + num1);
        
        // 20~34 사이의 정수 랜덤값을 추출한다.
        num1 = random.nextInt(15+ 20;
        System.out.println("From 20 to 34 : " + num1);
        
        // -10 ~ 9 사이의 정수 랜덤값을 추출한다.
        num1 = random.nextInt(20- 10;
        System.out.println("From -10 to 9 :" + num1);
        
        // 0.0(포함) ~ 1.0(포함안함) 사이의 난수를 추출한다.
        num2 = random.nextFloat();
        System.out.println("A random float(between 0-1): "+ num2);
        
        // 0.0 ~ 5.9999999 사이의 난수를 추출한다.
        // int로 형 변환(0~5) 후 1을 더한다.
        // 1~6 사이의 난수를 출력한다.
        num2 = random.nextFloat() * 6;
        num1 = (int)num2 + 1;
        System.out.println("From 1 to 6 : " + num1);
        
    }
 
}
 
cs


'IT > 자바' 카테고리의 다른 글

trhow와 throws로 예외처리를 하는 방법  (0) 2018.05.22
자바(Java) awt 패널(panel) 클래스 사용방법  (0) 2018.05.21
쓰레드 데드락  (0) 2018.05.18
쓰레드 기아  (0) 2018.05.18
쓰레드 공정  (0) 2018.05.18