2013-03-13 3 views
1

Java에는 함수 Math.random()과 클래스 Random이 있습니다. 왜 겉으로보기에는 동일한 작업 (즉, 난수 생성)에 대해 두 개의 엔티티가 있으며 언제 어떤 엔티티를 사용해야합니까?Java에서 임의의 숫자에 대한 클래스뿐만 아니라 함수가있는 이유는 무엇입니까?

+1

시드가 아닌 광석이있을 수 있습니다. http://stackoverflow.com/questions/738629/math-random-versus-random-nextintint –

+1

중복이 아닌 다른 질문은 분명히 샘플링에 관한 것입니다. 'Math.random() * n '을 통해 정수로 변환됩니다. – kutschkem

답변

7

명시 적 임의 시드를 설정해야하는 경우 (재연 가능 난수를 원할 때 가끔 그렇습니다), Random을 사용합니다.

그 외에도 random() 메서드는 고정 Random 개체의 바로 가기이므로 간결함을 위해 그리고 임의의 시드 (보통은 시간이 맞을 것입니다.)에 신경 쓰지 않을 때 사용합니다.

2

'차이'는 java.util.Random에 두 개 이상의 유형 숫자를 반환하는 메소드가 있다는 것입니다. 캐스팅이 필요하지 않습니다. 하나의 생성자를 사용하면 사용자가 반복 시퀀스에 대해 생성기를 시드 할 수 있습니다.

java.lang.Math.random()은 java.util.Random을 사용합니다. 복식만을 제공하며 파종 능력은 없습니다.

관련 문제