728x90
1. Math.random()
- 0.0 이상 1.0 미만의 double형 난수를 반환
- 정적 메소드. import할 필요 없음.
- 현재 시간을 seed로 사용.
코드 | 반환값x |
Math.random() | 0.0 <= x < 1.0 인 실수 |
Math.random() * N | 0.0 <= x < N 인 실수 |
(int) ( Math.random() * N ) | 0 <= x < N 인 정수 |
(int) ( Math.random() * N ) + 1 | 1 <= x < N+1 인 정수 ( 1에서 N까지의 정수) |
2. Random()
Java.util.Random()
- 객체를 생성하여 사용 == 지속적으로 난수 생성 시 유리 ( 재활용 가능 )
객체 생성
Random rand = new Random();
seed 지정
long seed = System.currentTimeMills();
Random rand = new Random(seed);
//이후 seed 변경 시 아래의 메소드 사용
rand.setSeed(anotherseed);
난수 리턴 메소드
메소드 | 설명 |
boolean nextBoolean() | 균일 분포의 boolean형 난수 리턴 |
int nextInt() | 균일 분포의 int형 전 범위 난수 리턴 |
int nextInt(int n) | 균일 분포의 0이상 n 미만의 int형 난수 리턴 |
long nextLong() | 균일 분포의 long형 전 범위의 난수 리턴 |
float nextfloat() | 균일 분포의 0.0이상 1.0미만의 float형 난수 리턴 |
double nextDouble() | 균일 분포의 0.0이상 1.0 미만의 double형 난수 리턴 |
double nextGaussian() | 정규 분포(평균이 0, 표준편차가 1)의 난수 리턴 |
- ex. 0에서 9사이의 난수를 리턴
int r = rand.nextInt(10); // 0<= r < 10
728x90
'언어 공부 > JAVA' 카테고리의 다른 글
[JAVA] 기본 입력 : Scanner (0) | 2021.08.02 |
---|---|
[JAVA] 연산자 우선순위 및 연산 대상 (0) | 2021.07.22 |
[JAVA] 묵시적 (Implicit) vs 명시적(Explicit) 형변환 : Type Casting (0) | 2021.07.22 |
[JAVA] 데이터 타입 | 크기 | 범위 ( Data type : Reference vs Primitive ) (0) | 2021.07.22 |