>  기사  >  Java  >  Java 난수 생성기가 시드 설정에도 불구하고 항상 같은 숫자를 반환하는 이유는 무엇입니까?

Java 난수 생성기가 시드 설정에도 불구하고 항상 같은 숫자를 반환하는 이유는 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-07 07:11:02616검색

Why Does My Java Random Number Generator Always Return the Same Number Despite Setting a Seed?

Java 난수 생성기는 시드에도 불구하고 항상 같은 숫자를 반환합니다.

제공된 Java 코드에서는 시드를 설정했음에도 불구하고 난수 생성기가 일관되게 나타납니다. 같은 숫자가 나옵니다. 각 메서드 호출에 대해 새 Random 개체를 생성할 때 문제가 발생합니다. 이렇게 하면 매번 새로운 시드가 생성되어 난수가 반복됩니다.

이 문제를 해결하려면 전체 클래스에서 단일 Random 인스턴스를 공유하는 것이 필수적입니다. 이 변경 사항을 통합함으로써 우리는 시드가 단 한 번만 설정되어 진정한 난수 시퀀스가 ​​생성되도록 보장합니다.

public class Numbers {
    // Shared Random instance
    private Random randnum = new Random();

    public int random(int i) {
        randnum.setSeed(123456789);
        return randnum.nextInt(i);
    }
}

이 수정을 통해 이후에 Random 메서드를 호출하면 다른 숫자가 반환됩니다. 고정된 시드를 갖는 제약.

위 내용은 Java 난수 생성기가 시드 설정에도 불구하고 항상 같은 숫자를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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