Java는 프로그래머와 개발자가 사용하는 프로그래밍 언어입니다. 많은 초보자는 Java를 사용하여 개발할 때 난수를 어떻게 설정해야 할까요?라는 간단한 질문에 빠졌습니다. Java에서 난수를 설정하는 방법은 무엇입니까? 난수를 사용해야 하는 경우가 종종 있습니다. 걱정하지 마세요. Java에서 난수 설정에 대한 자세한 튜토리얼을 살펴보겠습니다.
1. j2se에서는 Math.random() 메소드를 사용하여 난수를 생성할 수 있습니다. 생성된 난수는 0-1 사이의 두 배입니다. 예를 들어 100을 곱하는 것과 같습니다. 100 이내의 임의의 숫자이며 j2me에서는 사용할 수 없습니다.
2. java.util 패키지는 Random 클래스를 제공합니다. 새로운 Random 객체를 생성하여 난수를 생성할 수 있습니다. 이는 임의의 정수, 임의의 실수, 임의의 double 및 임의의 long을 생성할 수 있습니다. 프로그램에서 자주 사용되는 난수를 구하는 방법.
3. System 클래스에는 currentTimeMillis() 메소드가 있습니다. 이 메소드는 1970년 1월 1일 0:00:00부터 현재까지의 밀리초 수를 반환합니다. 반환 유형이 길기 때문에 다음과 같이 얻을 수 있습니다. 난수를 사용하여 일부 숫자를 모듈로화한 다음 범위로 제한할 수 있습니다
실제로 Random의 기본 구성 방법에서는 위의 세 번째 방법도 난수를 생성하는 데 사용됩니다
다음 지침이 있습니다. 방법 2의 Random 클래스:
java.util.Random 클래스를 작성하는 방법에는 시드가 있는 경우와 없는 경우가 있습니다.
시드가 없는 경우:
이 방법은 임의의 숫자를 반환하며 결과는 매번 다릅니다
public class RandomTest {
public static void main(String[] args) {
java.util.Random r=new java.util.Random();
for(int i =0;i<10;i++ ){
System.out.println(r.nextInt());
}
}
With Seed:
이런 식으로 프로그램을 몇 번 실행해도 결과가 반환됩니다. 모두 똑같습니다
public static void main(String[] args) {
java.util.Random r=new java.util.Random(10);
for(int i=0;i<10;i++ ){
System.out.println(r.nextInt());
}
}
두 메소드의 차이점은
(1) 먼저 Java Doc을 열어서 설명을 보겠습니다. Random 클래스의 :
이 클래스의 인스턴스는 의사 난수 스트림을 생성하는 데 사용됩니다. 이 클래스는 선형 합동 공식을 사용하여 수정할 수 있는 48비트 시드를 사용합니다("컴퓨터 프로그래밍 기술, 2권 참조). " Donald Knuth 작성”, 섹션 3.2.1).
동일한 시드로 두 개의 Random 인스턴스를 생성하고 각 인스턴스에 대해 동일한 메서드 호출 순서를 수행하면 동일한 숫자 시퀀스가 생성되고 반환됩니다. 이 기능의 실현을 보장하기 위해 Random 클래스에 대한 특정 알고리즘을 지정합니다. Java 코드의 완전한 이식성을 위해 Java 구현에서는 Random 클래스가 여기에 표시된 모든 알고리즘을 사용하도록 해야 합니다. 그러나 Random 클래스의 하위 클래스는 모든 메서드에 대한 일반 계약을 준수하는 한 다른 알고리즘을 사용할 수 있습니다.
Java Doc에서는 Random 클래스에 대해 매우 명확하게 설명했고, 우리의 테스트에서도 이를 확인했습니다.
(2) 시드 번호가 제공되지 않으면 Random 인스턴스의 시드 번호는 System.currentTimeMillis()를 통해 얻을 수 있는 현재 시간의 밀리초 수입니다. JDK의 소스 코드를 열면 이를 매우 명확하게 볼 수 있습니다.
/**
* 새로운 난수 생성기를 생성합니다. 해당 시드는
* 현재 시간을 기준으로 한 값으로 초기화됩니다.
* Random() { this(System.currentTimeMillis()); }java.lang.System#currentTimeMillis()
*/
public Random() { this(System.currentTimeMillis()) }
추가:
무작위 객체의 nextInt(), nextInt(int n) 메서드에 대한 설명:
int nextInt()
이 난수 생성기 시퀀스에서 균일하게 분포된 int 값인 다음 의사 난수를 반환합니다.
int nextInt(int n)
이 난수 생성기 시퀀스에서 가져온 0(포함)과 지정된 값(제외) 사이에 균일하게 분포된 int 값인 의사 난수를 반환합니다.
위 내용은 Java에서 난수를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!