Memo/짧은 메모

난수(Random Number) 생성.

생각없이 해도 생각보다 좋다. 2022. 9. 5. 20:44

Math.random();

0.0 <= x < 1.0 에 해당하는 double형 값 반환.

 

응용1. int값 반환

(int) Math.random();

형 변환을 통해 int형 값 반환.

 

응용2. 범위 변경

1. Math.random()*a;

a*0.0 <=  x < a*1.0 에 해당하는 doube형 값 반환.

2. Math.random()*a + b;

a*0.0 +b+0.0 <=  x < a*1.0 + b+1.0 에 해당하는 doube형 값 반환.

 

Math.random(); 주의점.

: 한 프로그램 내에서는 똑같은 패턴의 수를 생성. (seed의 변경이 없기 때문)

//Math.random() 메서드는 현재 시간을 seed로 하기 때문에 난수에 가까운 수로 생성이 된다. (패턴 없음)

 

Random 클래스 이용

주어지는 seed(인자)에 따라 난수 생성.

 

생성자

1. Random( );

: 현재 시스템 시간을 seed로 자동 사용.

2. Random(long seed)

: long 타입의 seed에 해당하는 난수 반환.

 

메소드(난수 생성용)

nextInt(); nextDouble(); nextBoolean(); 등 기본 자료형마다 반환 메소드 존재.

nextInt(int n);의 경우는 인자로 범위(<n)를 지정할 수 있음.

 

응용

: 기본적인 범위 응용은 Math.random();과 같을듯.