티스토리 뷰

Computer/JAVA

[Java] Random 난수 값 생성

jamezc 2020. 11. 26. 01:10

[Java] Random 난수 값 생성

1. Math.random() 사용하기

Math 클래스는 java.lang 패키지에 있으므로 별도로  import 할 필요가 없습니다. Math 클래스의 random() 메소드는 정적(static) 메소드이므로 객체를 생성하지 않고 Math.random(); 으로 바로 사용할 수 있습니다. 이 메소드는 현재 시간을 seed로 사용합니다.

결과 값은 0.0 이상 ~ 1.0 미만의 double 값의 난수

for(int i = 0; i < 3; i++) {
    double dValue = Math.random();
    System.out.println(dValue);
}

// 결과
0.5453128951662416
0.878518955765202
0.321598184288554

아래와 같이 10을 곱하고 int값으로 자료형 변환시 0 이상 ~ 10미만의 정수값 반환

for(int i = 0; i < 3; i++) {
    double dValue = Math.random();
    int value = (int)(dValue * 10);

    System.out.println(value);
}

 

 

2. Random 클래스 사용하기

 

- boolean nextBoolean() : boolean 형 난수 발생
- int nextInt() : int 형 난수 발생(int 전 범위에서 난수가 발생합니다.)
- long nextLong() : long형 난수 발생(long 점 범위에서 난수가 발생합니다.)
- int nextInt(int n) : 0이상 n 미만의 int형 난수 발생
- float nextFloat() : 0.0이상 1.0 미만의 float형 난수 발생
- double nextDouble() : 0.0이상 1.0 미만의 double형 난수 발생
- double nextGaussian() : 정규 분포의 난수를 발생합니다.(평균이 0이고, 표준편차가 1인 분포 입니다.)

 

아래와 같이 nextInt() 함수에 10의 매개변수를 입력하게 되면  0 이상 ~ 10미만의 정수값이 반환 됩니다.

import java.util.Random;

Random rand = new Random();

for(int i = 0; i < 3; i++) {
    int value = rand.nextInt(10);  // 0 <= value < 10
    System.out.println(value);
}

 

 

 

댓글

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음



Total
Today
Yesterday
최근에 달린 댓글