> 백엔드 개발 > Golang > 내 Go 코드가 계속 동일한 난수를 생성하는 이유는 무엇입니까?

내 Go 코드가 계속 동일한 난수를 생성하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-26 12:43:29
원래의
789명이 탐색했습니다.

Why Does My Go Code Keep Generating the Same Random Number?

Go에서 반복적인 난수 생성 해결

Go에서 rand.Intn(n int) int 함수는 의사 난수 정수를 반환합니다. [0, n) 범위 내. 그러나 동일한 숫자가 일관되게 인쇄되는 문제가 발생했습니다.

문서에서는 rand.Intn이 결정적인 값 시퀀스를 생성하는 기본 소스를 사용한다고 제안합니다. 동작을 사용자 정의하고 무작위성을 보장하려면 난수 생성을 적절하게 시드해야 합니다.

난수 생성기를 시드하려면 rand.Seed(seed int64) 함수를 호출하세요. 이 함수는 기본 소스를 시드 값으로 초기화합니다. 일반적인 방법은 현재 Unix 타임스탬프를 사용하는 것입니다.

<code class="go">rand.Seed(time.Now().UnixNano())</code>
로그인 후 복사

생성기를 시드하여 프로그램을 실행할 때마다 서로 다른 난수가 생성되도록 합니다.

rand.Seed()인 경우 호출되지 않으면 생성기는 1로 시드된 것처럼 작동하여 반복이 관찰됩니다.

위 내용은 내 Go 코드가 계속 동일한 난수를 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿