2011-08-19 6 views

답변

1

이해하기 어려운 것은 무엇입니까? 난수의 거의 모든 유형을 생성하는 방법이 있습니다 ... 당신이 원하는 하나가 아마 이것이다 :

int nextInt(int n) 

는 의사, 0 (포함) 사이에 균일하게 분포 된 int 값과 지정된 값 (전용)를 반환합니다, 이 난수 생성 프로그램의 시퀀스에서 가져온

편집 : 함수가 실제로 어떻게 작동하는지 질문합니다. 이것 역시 함수의 javadoc에서 설명합니다. 세부 사항에 더 관심이 있다면 docs (http://download.oracle.com/javase/1.4.2/docs/api/java/util/Random.html)에서 참조 된 D. Knuth 책을 가져야합니다.

이 클래스의 인스턴스는 의사 난수 스트림을 생성하는 데 사용됩니다. 이 클래스는 선형 합동 수식을 사용하여 수정 된 48 비트 시드를 사용합니다. (Donald Knuth, 컴퓨터 프로그래밍의 기술, 제 2 권, 3.2.1 절 참조)

무작위의 두 인스턴스가 동일한 시드로 생성되고 각각에 대해 동일한 메서드 호출 시퀀스가 ​​만들어지면 동일한 일련의 수를 생성하고 반환합니다. 이 프로퍼티를 보증하기 위해서, 특정의 알고리즘이 클래스 Random에 대해 지정됩니다. 자바 구현은 Java 코드의 절대 이식성을 위해 Random 클래스에 대해 여기에 표시된 모든 알고리즘을 사용해야합니다. 다만, Random 클래스의 서브 클래스는, 모든 메소드의 범용 규약에 준거하고있는 한, 다른 알고리즘의 사용이 허가되고 있습니다.

랜덤 클래스에 의해 구현 된 알고리즘은 각 호출시 최대 32 개의 의사 임의 생성 비트를 제공 할 수있는 보호 유틸리티 메소드를 사용합니다.

많은 응용 프로그램에서 Math 클래스의 random 메서드를 사용하는 것이 더 간단합니다.

int yourRandomNumber = new Random().nextInt(y-x) + x; 

예 : 당신은 X (포함)와 y (독점) 사이의 임의의 정수를 원하는 경우

+0

xx 그러나 내가 알아야 할 것은이 기능의 코드이다. – abhi1289

3

, 여기 당신이 무엇을 당신의 임의의 선택을하려면 [4,5,6,7] , 당신은 할 것이다 :

int yourRandomNumber = new Random().nextInt(4 /* i.e. 8-4 */) + 4; 
+0

큰 글자로 철자를 적을 것이라고 나는 생각하지 않았다.하지만 너는 그랬다.;) 나는 OP가 자신을 더하기/빼기를 ​​할 수 있다고 생각했다. :) –

관련 문제