자바에서 난수를 생성하는 방법이다. 랜덤뽑기와 같이 자바에서 랜덤으로 난수를 배출하는 프로그램이 존재하는데 Math클래스를 이용한 방법과 Random클래스를 이용한 방법이 있다.
1 Math.random() 함수를 이용한 방법
Math.random()함수는 Math클래스 안에 있는 함수로 Math클래스는 최상위 클래스인 Object클래스 안에 있으므로 따로 import시켜줄 필요 없이 사용가능하다.
Math.random(); : 0.0이상 1.0미만의 실수를 추출해냄.
- 1부터 5까지의 랜덤한 정수를 추출해내고 싶을 때
랜덤함수에 5를 곱한다. -> Math.random()*5 : 0.0이상 0.5미만의 실수 추출.
+1을 해준다. -> Math.random()*5 + 1 : 1이상 6미만의 실수 추출.
int타입으로 형변환 시켜준다. -> (int)(Math.random()*5 + 1) : 1이상 6미만의 정수 추출.
따라서 1부터 원하는 수n 까지의 정수를 구하는 방법은 다음과 같다.
(int)(Math.random()*n + 1) 또는 (int)(Math.random()*n) + 1
2 Random 클래스를 이용한 방법
Random클래스는 종자값(seed)을 설정 할 수 있으며 java.util 패키지안에 있어 import 후 사용해야 하며 new를 통해 객체를 생성해 주어야 한다. 또한 다양한 타입의 난수를 생성할 수 있다.
nextBoolean() |
true 혹은 false |
nextInt() |
-2147483648 ≤ x ≤ 2147483647 (Integer) |
nextInt(int bound) |
0 ≤ x < bound (Integer) (bound 값은 포함하지 않음) |
nextLong() |
-9223372036854775808L ≤ x ≤ 9223372036854775807L (Long) |
nextFloat() |
0.0 ≤ x < 1 |
nextDouble() |
0.0 ≤ x < 1 |
nextGaussian() |
평균 0.0이며 표준편차가 1.0인 정규분포 |
- 1부터 45까지의 정수를 10개 추출해내고 싶을 때.
Random rd = new Random(); 으로 랜덤객체를 생성해 준다. (ctrl + space로 import필수!)
for문으로 묶어서 같은 반복을 10번 실행시킨다.rd. nextInt(45);+1하면 1부터 45까지의 정수가 랜덤하게 추출된다.
import java.util.Random; // Random 클래스 import
Random rd = new Random(); // 랜덤객체 생성
for(int i=0; i<10; i++{ // 같은 반복을 10번 실행
System.out.println(rd.nextInt(5)+1); // 1부터 45까지의 정수
}
'Java > Java 기초문법' 카테고리의 다른 글
[JAVA 기초] 자바 클래스 메서드와 인스턴스 메서드 (0) | 2021.03.09 |
---|---|
[JAVA 기초] 자바 객체지향언어 - 클래스,인스턴스와 객체 (0) | 2021.03.09 |
[JAVA 기초] 자바 Swing 클래스와 JOptionPane (0) | 2021.03.07 |
[JAVA 기초] 자바 배열(Array) - 다차원 배열, deepToString, arraycopy 메서드 (0) | 2021.03.06 |
[JAVA 기초] 자바 배열(Array) - 3 foreach문, 예제 (0) | 2021.03.05 |
댓글