나는 다음과 같은 두 복식이 있습니다
double min = 100;
double max = 101;
랜덤 생성기로 최소값과 최대 값 사이의 이중 값을 만들어야합니다.
Random r = new Random();
r.nextDouble();
그러나 여기서 범위를 지정할 수있는 곳은 없습니다.
답변
사이의 임의의 값을 생성하는 방법 rangeMin
과 rangeMax
:
Random r = new Random();
double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();
답변
이 질문은 Java 7 릴리스 이전에 요청되었지만 이제 Java 7 (이상) API를 사용하는 또 다른 방법이 있습니다.
double random = ThreadLocalRandom.current().nextDouble(min, max);
nextDouble
최소 (포함)와 최대 (제외) 사이의 의사 난수 double 값을 반환합니다. 경계가 반드시 필요한 것은 아니며 int
가능할 수도 있습니다 double
.
답변
이것을 사용하십시오 :
double start = 400;
double end = 402;
double random = new Random().nextDouble();
double result = start + (random * (end - start));
System.out.println(result);
편집하다:
new Random().nextDouble()
: 0과 1 사이의 숫자를 임의로 생성합니다.
start
: 시작 번호, 번호를 “오른쪽으로”이동
end - start
: 간격. random은 0에서 1까지의 숫자를주기 때문에이 숫자의 0 %에서 100 %까지를 제공합니다.
편집 2 :
Tks @daniel 및 @aaa bbb. 내 첫 대답은 틀렸다.
답변
import java.util.Random;
public class MyClass {
public static void main(String args[]) {
Double min = 0.0; // Set To Your Desired Min Value
Double max = 10.0; // Set To Your Desired Max Value
double x = (Math.random() * ((max - min) + 1)) + min; // This Will Create A Random Number Inbetween Your Min And Max.
double xrounded = Math.round(x * 100.0) / 100.0; // Creates Answer To The Nearest 100 th, You Can Modify This To Change How It Rounds.
System.out.println(xrounded); // This Will Now Print Out The Rounded, Random Number.
}
}
답변
Random random = new Random();
double percent = 10.0; //10.0%
if (random.nextDouble() * 100D < percent) {
//do
}
답변
랜덤의 주요 아이디어는 의사 난수 값을 반환한다는 것입니다. 완전 랜덤 함수와 같은 것은 없으므로 동일한 시드를 사용하는 2 개의 랜덤 인스턴스는 특정 조건에서 동일한 값을 반환합니다.
doc 함수를 이해하려면 먼저 doc 함수를 보는 것이 좋습니다 ( https://docs.oracle.com/javase/8/docs/api/java/util/Random.html )
nextDouble () 함수의 반환 값이 0.0과 1.0 사이의 의사 난수 값이라는 것을 이해 했으므로이 값을 유리하게 사용할 수 있습니다.
경계가 유효한 (A> B) A와 B givin ‘사이에 난수를 만들려면 다음을 수행해야합니다. 1. A와 B 사이의 범위를 찾아서 여러 “단계”를 수행하는 방법을 알 수 있습니다. 2. random 함수를 사용하여 수행 할 단계 수를 결정합니다 (반환 된 값이 0.0과 1.0 사이이므로 “임의의 임의 백분율 증가”로 생각할 수 있음). 3. 오프셋 추가
그 후, 당신은 폭도들이 당신에게 내 의견으로는 가장 쉽고 가장 일반적인 방법을 제공했음을 알 수 있습니다
double randomValue = rangeMin + (rangeMax-rangeMin) * r.nextDouble ();
double RandomValue = 오프셋 + (범위) * (0.0-1.0 사이의 randomVal)
답변
