자바에서 난수를 생성하는 방법은 두 가지가 있는데, 일단 저는 사용법을 바로 확인한 Random 클래스에 대해서 포스팅 하려고 해요.
-
생성자
Random()
Random 클래스 객체를 생성Random(long seed)
기본 생성자와 동일하나, 원하는 난수 발생 인자를 바탕으로 생성-
사용법
// 그냥 만들기 Random rInstance1 = new Random(); // 특정한 난수 발생 인자를 넣기 Random rInstance2 = new Random(12); // 시간으로 난수 발생 인자를 넣기 Random rInstace3 = new Random(System.currentTimeMillis());
-
-
메쏘드
boolean
nextBoolean()
등분포하게 무작위 생성된 true, false중 하나를 반환한다.void
nextBytes(byte[] bytes)
등분포하게 무작위 생성된 byte 배열을 인자로 넣은 bytes에 넣어 준다.double
nextDouble()
등분포하게 무작위 생성된 [0.0, 1.0]의 실수(real number)를 반환한다.float
nextFloat()
등분포하게 무작위 생성된 [0.0, 1.0]의 소수를 반환한다.double
nextGaussian()
평균이 0.0이고 표준분포가 1.0인 가우시안 분포 하게 무작위 생성된 실수를 반환한다.int
nextInt()
등분포하게 무작위 생성된 정수를 반환한다.int
nextInt(int n)
등분포하게 무작위 생성된 [0, n-1]의 정수를 반환한다.long
nextLong()
등분포하게 무작위 생성된 긴 정수를 반환한다.void
setSeed(long seed)
난수 발생인자를 seed로 다시 설정한다.
-
실습과 결과
import java.util.Random; public class main { public static void main(String[] args) { Random rInstance = new Random(System.currentTimeMillis()); System.out.println("첫번째 테스트"); randomTest(rInstance); System.out.println("\n두번째 테스트"); randomTest(rInstance); System.out.println("\n세번째 테스트"); randomTest(rInstance); } protected static void randomTest(Random rInstance) { System.out.println("boolean : "+rInstance.nextBoolean()); System.out.println("double : "+rInstance.nextDouble()); System.out.println("float : "+rInstance.nextFloat()); System.out.println("int : "+rInstance.nextInt()); System.out.println("int(5) : "+rInstance.nextInt(5)); System.out.println("long : "+rInstance.nextLong()); } }
자바독에서의 설명에 int, double, long등 별도의 범위가 없는 메쏘드들은 해당 데이터 타입이 가지는 모든 범위를 의미하는 거 같군요! :D
제가 원래 원노트에서 작업을 한 후에 "블로그 보내기"로 일단 보내놓고, 태그 정리한 후에 깔끔하게 정리해서 "발행" 까지 하는데.... table은 대관절 못올리겠네요-_-+++
그냥 새로 텍스트에디터에서 작업한 후에 올리는 중이어요ㅠㅠㅠ
'Programming > Java' 카테고리의 다른 글
List (0) | 2011.06.24 |
---|
() : 초과, 미만
[] : 이상, 이하
(a, b) : a초과 ~ b미만 사이의 수치(a, b는 범위에 포함되지 않는 다는 뜻)
[a, b] : a이상 ~ b이하 사이의 수치(a, b는 범위에 포함된다는 뜻)
(a, b] : a초과 ~ b이하 사이의 수치(a는 범위 밖, b는 범위 포함이라는 뜻)