>  기사  >  Java  >  Java의 난수가 매번 같은 것처럼 보이는 이유는 무엇입니까?

Java의 난수가 매번 같은 것처럼 보이는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-09 13:41:02910검색

Why Do My Random Numbers in Java Seem to Be the Same Every Time?

Java에서 시드를 사용하여 난수 이해

Java에서는 시드를 사용하여 Random 인스턴스를 초기화하고 의사 난수 시퀀스를 생성합니다. . 동일한 시드가 제공되면 Random 인스턴스는 동일한 숫자 시퀀스를 생성합니다.

내 난수는 왜 매번 같은가요?

제공된 코드에서:

double num = generator.nextDouble() * (0.5);

randomGenerator를 호출할 때마다 동일한 시드를 사용하므로 동일한 무작위 시퀀스가 ​​생성됩니다.

수정 방법

시드를 사용하여 다양한 난수 시퀀스를 생성하려면:

  1. 다른 시드 사용 : RandomGenerator를 호출할 때마다 Random 생성자에 대한 인수로 다른 시드를 제공합니다. 이렇게 하면 각각 고유한 시드가 있는 여러 개의 Random 인스턴스가 생성됩니다.
  2. 기본 시드 사용: 여러 호출에서 동일한 시드를 사용하려면 외부에서 단일 Random 인스턴스를 초기화하세요. 현재 시간을 seed.

예:

private Random generator = new Random(); // outside randomGenerator
double randomGenerator() {
    return generator.nextDouble() * (0.5); // inside randomGenerator
}

의사 난수 생성

의사 난수 생성기(PRNG)는 무작위로 보이지만 무작위로 나타나는 시퀀스를 생성합니다. 결정적이며 초기 값이 시드됩니다. 동일한 시드를 사용하면 PRNG는 동일한 시퀀스를 생성합니다.

위 내용은 Java의 난수가 매번 같은 것처럼 보이는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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