Java에서 0과 1 사이의 임의 Double 값 생성
-
Java에서
Math.random()
을 사용하여 0과 1 사이의 임의 Double 값 생성 -
Java에서
Random().nextDouble()
을 사용하여 0과 1 사이의 임의 Double 값 생성 -
Java에서
ThreadLocalRandom.current().nextDouble()
을 사용하여 0과 1 사이의 임의 Double 값 생성
이 기사에서는 기본 유형double
의 0과 1 사이의 임의 값을 생성하는 세 가지 방법을 소개합니다. 생성 된 값의 임의성을 증명하기 위해 루프를 사용하여 0과 1 사이의 임의 이중 유형 값 10 개를 생성합니다.
Java에서Math.random()
을 사용하여 0과 1 사이의 임의 Double 값 생성
Math
클래스는 다양한 수학 연산을 수행하는 데 사용할 수 있습니다. 이 클래스를 사용하여 난수도 생성 할 수 있습니다. Math.random()
은 0과 1 사이의 난수를 반환하는 정적 함수입니다. 여기서 0은 생성 된 값을 포함하고 1은 항상 배타적입니다.
다음 예에서는Math.random()
을 사용하여double
유형의 임의 값을 생성합니다. 출력에서 값이 모두 무작위임을 알 수 있습니다.
public class RandomDouble {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
double randomDbl = Math.random();
System.out.println(randomDbl);
}
}
}
출력:
0.9537872648347154
0.2863804438195172
0.5815339629441948
0.7734677312115609
0.021051510563543485
0.9064133490694901
0.6833468691871607
0.30655711217738246
0.2730784326888416
0.6804778782692341
Java에서Random().nextDouble()
을 사용하여 0과 1 사이의 임의 Double 값 생성
0과 1 사이의 난수를 생성 할 수있는 또 다른 방법은java.util.Random
클래스의 일부인nextDouble()
입니다. Random
클래스의 객체와 함께nextDouble()
을 호출하면 이전 예제에서 본 것처럼 0과 1 사이의 임의 값을 반환합니다.
이 메서드는Math.random()
보다 효율적이라고합니다.
import java.util.Random;
public class RandomDouble {
public static void main(String[] args) {
Random randomObj = new Random();
for (int i = 0; i < 10; i++) {
double randomDbl = randomObj.nextDouble();
System.out.println(randomDbl);
}
}
}
출력:
0.240017494934622
0.08331956619499614
0.4359524465181911
0.5291811081068774
0.38193057731688373
0.6969527822622924
0.5436002348156281
0.32176862575520415
0.07327708002828293
0.9005635171231344
Java에서ThreadLocalRandom.current().nextDouble()
을 사용하여 0과 1 사이의 임의 Double 값 생성
이 튜토리얼에서 본 두 가지 기술은 다중 스레드 시스템에 효율적이지 않으며 성능이 저하 될 수 있습니다. 이는Random
클래스를 사용하여 난수를 생성 할 때 모든 스레드가 동일한 인스턴스를 공유하기 때문에 발생합니다. 즉, 한 스레드에서 변경이 발생하면 다른 모든 스레드도 실행됩니다.
이 문제를 해결하기 위해 Java는 JDK 7 업데이트에서ThreadLocalRandom
을 도입했습니다. 현재 스레드에서만 실행되는 클래스이므로 여러 스레드가있는 환경에서 성능이 향상됩니다.
아래 예제에서ThreadLocalRandom.current()
로 이중 임의 값을 생성하는nextDouble()
을 호출하고 0과 1 사이의 이중 값을 무작위로 생성합니다.
import java.util.concurrent.ThreadLocalRandom;
public class RandomDouble {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
double randomDbl = ThreadLocalRandom.current().nextDouble();
System.out.println(randomDbl);
}
}
}
출력:
0.9717084711770174
0.8977374014983726
0.2744375247405819
0.2866498720386894
0.6118970047667582
0.7441044456568308
0.21043457873690274
0.08985457420563114
0.86748682220748
0.18952106607144148
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn