충분히 쌓여가는
Random 클래스 본문
프로그램을 작성할 때 난수(random number)가 필요한 경우가 많음
게임 프로그램에서 주사위 던지기나 카드 섞기 등을 나타내기 위해 자주 난수를 사용함
ex. 비행 시뮬레이터는 엔진 고장 횟수 등을 임의로 만들어 내기 위해 난수를 사용할 수 있음
ex. 문제 은생식 시험에서 다음 문제를 선택하기 위해 난수를 사용할 수 있음
Random 클래스
- 의사 난수(pseudorandom number) 생성기를 나타냄
- 의사 난수는 정확하게 난수가 아니지만 거의 난수에 가까움
- 이 클래스는 java.util 패키지의 일부로서 의사 난수들을 생성하는 메소드들을 제공함
- 의사 난수 생성기는 초기 값에 기초하여 일련의 복잡한 계산을 수행한 후 난수처럼 보이는 수를 나타냄
Random 클래스의 주요 메소드
nextInt() | 모든 가능한 정수 값 범위에 있는 난수 생성 |
nextInt(int num) | 0과 (num -1) 사이에 있는 난수 생성 [0 <= 난수 < num] |
nextFloat() | 0.0과 1.0(포함 안함) 사이에 있는 난수 생성 [0.0 <= 난수 < 1.0] |
2개의 난수를 만드는 프로그램
// 1과 6사이의 난수 2개 생성
import java.util.Random;
public class SimulateDie {
public static void main(String[] args) {
// Random 객체를 생성하고 generator이 그 객체를 가리키게 함
Random generator = new Random();
// 난수를 저장하는 변수
int randomnumber1;
float randomnumber2;
// 1과 6사이의 난수 생성
randomnumber1 = generator.nextInt(6) + 1;
// 난수 출력
System.out.println("생성된 난수는 " + randomnumber1 + "이다.");
randomnumber2 = generator.nextFloat() * 6;
// 생성된 난수를 1과 6사이의 난수로 변환
randomnumber1 = (int)randomnumber2 + 1;
// 난수 출력
System.out.println("생성된 난수는 " + randomnumber1 + "이다.");
}
}