>Java >java지도 시간 >지정된 범위 내에서 정확한 무작위 이중을 생성하는 방법은 무엇입니까?

지정된 범위 내에서 정확한 무작위 이중을 생성하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-26 06:44:02482검색

How to Generate Precise Random Doubles Within a Specified Range?

지정된 범위 내에서 무작위 Double을 정확하게 생성

프로그래밍에서 난수를 사용하여 작업할 때 특정 범위 내에서 값을 생성해야 하는 경우가 많습니다. 범위. 이 문제는 min과 max로 표시되는 두 개의 double 값을 처리하고 무작위 생성기를 사용하여 두 값 사이에 무작위 double을 생성해야 할 때 발생합니다.

Random 클래스의 기존 nextDouble() 메서드는 무작위 값을 제공합니다. 0.0에서 1.0 사이이지만 사용자 정의 범위를 지정하는 기능이 부족합니다. 이 문제를 해결하려면 보다 정확한 접근 방식이 필요합니다.

해법에는 rangeMin 및 rangeMax 값을 nextDouble()에서 생성된 임의 값과 결합하는 공식을 사용하는 것이 포함됩니다. 다음 코드 줄은 이 수식을 보여줍니다.

<code class="java">double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();</code>

이 수식을 분석하면:

  • rangeMin: 원하는 범위의 최소값.
  • rangeMax: 원하는 범위의 최대값.
  • r.nextDouble(): Random 객체 r에 의해 생성된 0.0에서 1.0 사이의 임의 값.
  • 곱셈(rangeMax - rangeMin)은 범위를 확장합니다. 생성된 값은 0.0과 (rangeMax - rangeMin) 사이가 됩니다.
  • rangeMin을 추가하면 확장된 범위가 0.0이 아닌 rangeMin에서 시작하도록 이동합니다.

이 접근 방식을 따르면 최소 및 최대로 정의된 지정된 범위 내에서 임의의 이중 값이 생성될 수 있습니다. 이 기술을 사용하면 프로그래밍에서 생성되는 난수의 정밀도와 범위를 더 효과적으로 제어할 수 있습니다.

위 내용은 지정된 범위 내에서 정확한 무작위 이중을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.