2012-10-09 7 views
7

랜덤 (http://www.scala-lang.org/api/current/scala/util/Random.html)에 Scaladoc 페이지 nextDouble"은 다음의 의사에 균일 난수 생성기 시퀀스에서 0.0과 1.0 사이의 값을 이중 분산을 반환."고 명시Scala에서 Random.nextDouble의 범위는 무엇입니까?

"눈에 띄게"포함되지 않습니다. 예를 들어 0.0과 1.0의 값을 사용할 수 있습니까? 그렇다면 어느 것 (또는 둘 다)? 예를 들어,이 숫자로 나누면, 0이 반환 값이 아니 었는지 확인하고 싶습니다. 다른 경우 1.0을 원하지 않을 수도 있습니다. 꽤 분명히 이것은 시험을 통해 얻기가 어렵습니다. 약 10^15 값은 0.0과 1.0 사이입니다.

어느 쪽입니까? 모든 사람이 기억할 수있는 것은 아니기 때문에 모든 사람이 "포함 X"라고만 말하십시오.

+1

사이드 노트 : 1.0은 배타적이지만 부동 소수점 숫자의 내부 표현으로 인해 1.0에 가까운 값은 1.0으로 표시 될 수 있습니다.이 값을 사용하여 산술을하면 ... (Java 퍼즐이 있지만 나는 그것을 지금 발견 할 수 없다). – sschaef

답변

13

scala.util.Randomjava.util.Random 인 매우 얇은 래퍼입니다 (see the source) in sufficient detail 설명된다 :

가있다

nextDouble의 일반 계약 대 값이 균등 범위 0.0d (포함) 1.0D 내지 (배타적)에서) 약 (선택 즉 의사 랜덤 생성되어 리턴된다.

+2

nextDouble()은 매우 중요한 기능입니다.이 문제는 EXCRUCIATING 세부 사항에서 "scaladocs"라는 언어로 문서화해야합니다. Java 함수, q.v.를 둘러싼 래퍼라는 사실에 의존합니다. 매우 나쁜 생각입니다. 자바 기능을 기반으로하지 않을 언젠가는 분명히있을 것입니다. 어쨌든, 답변 주셔서 감사합니다! –

관련 문제