최소 포함 및 최대 제외를 사용하여 Math.random ()으로 숫자를 생성하는 방법은 무엇입니까? [복제]

Nov 14 2020

나는 사용 Math.random()*(max-min))+min했지만 이것은 모두 독점적입니다. 어떻게 포괄적으로 만들 수 있으며 이것을 파악하는 방법은 무엇입니까?

나는 Math.random()*(max-min))+min그것이 모두 독점적이라는 것을 깨달을 때까지 노력 했습니다. 나는 min을 포함하여 이것을 만드는 방법의 논리를 알아 내려고 노력하고 있습니다. 나는 또한 시도 Math. random() * (max - min + 1) + min했지만 이것은 상단을 포함합니다.

간단히 말해서 Math.random()최소 (포함)에서 최대 (제외)까지 생성 번호를 어떻게 사용할 수 있습니까?

답변

3 ArvindKumarAvinash Nov 14 2020 at 07:08

Math.random()보다 긍정적 인 신호, 더 큰 함께 이중 값을 반환하거나 동일 0.0미만 1.0.

최소 = 10, 최대 = 20이라고 가정 해 보겠습니다.

Math.random() * (max - min)= Math.random() * 10=>에서 0미만 까지의 임의의 숫자 10.

따라서에서 0까지 10(포함) 까지의 숫자를 원하면 추가 1해야합니다. 즉,Math.random() * (max - min + 1)

따라서 최종 표현은 (int)(Math.random() * (max - min + 1)) + min

min = 10 및 max = 20 인 경우 다음과 같이 평가됩니다.

(int)(Math.random() * (20 - 10 + 1)) + 10= (int)(Math.random() * 11) + 10= (부터 0까지 의 숫자 10) + 10=부터 10까지 의 숫자20

pauan Nov 14 2020 at 07:09

Math.random () (max-min + 1) + min은 double value (int) (Math.random () (max-min + 1)) + min을 반환하기 때문에 int로 캐스팅 해 볼 수 있습니다.