Java

Java 04. Random (랜덤) 난수 생성하기

지댕댕 2023. 3. 4. 12:02
728x90

자바에서 난수를 만드는 방법은 2가지가 있습니다.

  1. Random 클래스 사용.
  2. Math.random() 사용.

두 방법의 차이점은 Math.random() 메소드는 0.0에서 1사이의 double 난수를 얻는데만 사용한다면, Random 클래스는 boolean, int, long, float, double 난수를 얻을 수 있습니다. 또 Math.random()은 종자값(seed)이 고정인 반면 Random클래스는 종자값을 설정 할 수 있습니다. 종자값은 난수를 만드는 알고리즘에 사용되는 값으로 종자값이 같으면 같은 난수를 얻습니다.

대표적으로 가장 많이 사용되는 랜덤함수는 import java.util.random; 클래스 이다.  java.util은 별도로 설치할 필요 없이 java를 설치하면 모두 사용할 수 있기 때문에 import만 하면 사용이 가능하다.

컴퓨터는 기본적으로 난수를 생성할 수 없다. 사람이란 존재는 현재 수많은 상황에 놓여져 있고, 매번 유사한 상황이 된다 하더라도 다른 선택을 할 수 있다 그러나 컴퓨터는 인간과 같은 상황에 놓이기 힘들고, 동일한 값이 들어오면 동일한 값을 출력하게 된다

그렇기 때문에 난수값을 생성하기 위해서는 몇가지 상황이라는 종자값(Seed)를 생성하여 그 시드에 맞는 난수를 결정하게 된다. 즉 컴퓨터가 만들어내는 난수는 Seed에 따라 동일하게 나오는 해쉬(Hash)값과 유사하다는 것이다. 이 난제를 해결하기 위해 랜덤을 제공하는 기능들은 Seed값을 입력하지 않으면 보통 컴퓨터의 현재 시간을 seed값으로 선택하고 난수값을 생성하여 사람들은 컴퓨터가 매우 영특하게 난수값을 생성한다고 착각하게 된다.

Random 클래스를 이용해 난수를 생성한 실습

 

728x90