std::random_device 및 MinGW의 재현성 문제
C에서는
분석
일관되지 않은 동작으로 인해 결정성에 대한 의문이 제기되었습니다.
"비결정적 소스(예: 하드웨어 장치)인 경우 std::random_device는 의사 난수 엔진 측면에서 구현될 수 있습니다. )은 구현에 사용할 수 없습니다."
이는 실제 무작위 소스를 사용할 수 없는 경우 라이브러리가 의사 난수 생성기로 대체됨을 의미합니다. 그러나 MinGW 4.8.1의 경우 의사 무작위성을 사용하더라도 출력은 일관되게 예측 가능한 것으로 보입니다.
의심되는 근거
한 가지 이론에서는 다음과 같이 가정합니다. 이 동작은 의도적인 것일 수 있습니다. 무작위가 아닌 시퀀스를 제공함으로써 라이브러리는 기본 구현의 무작위성에 대한 잠재적인 결함을 강조합니다. 이는 생성된 난수가 정말 예측 불가능하지 않을 수 있다는 점을 개발자에게 경고하는 역할을 합니다.
해결책
MinGW 4.8.1을 사용하여 진정한 무작위 시퀀스를 생성하려면 사용자
위 내용은 std::random_device가 MinGW 4.8.1과 동일한 시퀀스를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!