[go] go 언어에서의 난수 생성 방법

Go 언어에서는 난수를 생성하기 위해 math/rand 패키지를 사용할 수 있습니다. 해당 패키지를 이용하여 다양한 방법으로 난수를 생성할 수 있습니다.

시드(seed) 설정하기

난수를 생성하기 전에는 시드(seed)를 설정해야 합니다. 시드는 난수 생성 알고리즘의 시작점을 결정하는데, 일반적으로 현재 시간 등을 이용하여 동적으로 설정합니다.

import (
    "fmt"
    "math/rand"
    "time"
)

func main() {
    // 현재 시간을 이용하여 시드를 설정
    rand.Seed(time.Now().UnixNano())
}

위 예제에서 time.Now().UnixNano()를 이용하여 현재 시간을 나노초 단위의 정수값으로 변환하고, 이를 시드로 활용합니다.

정수 난수 생성하기

Intn 함수를 이용하여 0 이상 지정한 숫자 미만의 정수 난수를 생성할 수 있습니다.

num := rand.Intn(100)  // 0 이상 100 미만의 정수 난수 생성

부동소수점 난수 생성하기

Float64 함수를 이용하여 0.0 이상 1.0 미만의 부동소수점 난수를 생성할 수 있습니다.

num := rand.Float64()  // 0.0 이상 1.0 미만의 부동소수점 난수 생성

이처럼 Go 언어에서는 math/rand 패키지를 이용하여 간단하게 다양한 종류의 난수를 생성할 수 있습니다.

관련 문서: math/rand 패키지 - 공식 Go 언어 문서