[go] go 언어에서 난수 생성하기

Go 언어에서는 난수를 생성하기 위한 표준 라이브러리가 제공됩니다. 난수를 생성하고 활용하는 방법을 알아보겠습니다.

목차

  1. 난수 생성하기
  2. 시드(seed) 설정하기
  3. 임의의 범위 내에서 난수 생성하기

난수 생성하기

Go 언어에서는 math/rand 패키지를 사용하여 난수를 생성할 수 있습니다. 아래와 같이 Intn 함수를 사용하여 0부터 n 미만의 임의의 정수를 생성할 수 있습니다.

package main

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

func main() {
	rand.Seed(time.Now().UnixNano())
	randomNumber := rand.Intn(100)
	fmt.Println(randomNumber)
}

시드 설정하기

난수 생성기는 초기값인 시드(seed)를 사용하여 난수를 생성합니다. 시드를 일정한 값으로 설정하면 프로그램을 실행할 때마다 같은 순서의 난수를 얻을 수 있습니다. 따라서 프로그램을 실행할 때마다 다른 난수를 얻기 위해서는 시드 값을 변경해야 합니다.

위 코드에서 rand.Seed(time.Now().UnixNano())를 통해 현재 시간을 이용하여 시드를 설정하였습니다.

임의의 범위 내에서 난수 생성하기

Intn 함수는 0부터 n 미만의 임의의 정수를 생성합니다. 다른 범주 내에서 난수를 생성하기 위해서는 다음과 같이 계산하면 됩니다.

min := 5
max := 20
randomNumber := min + rand.Intn(max-min)

위 예시에서는 5부터 20 사이의 임의의 정수를 생성합니다.


이제 Go 언어를 사용하여 난수 생성하는 방법을 알아보았습니다. 난수를 생성할 때 시드를 적절히 설정하여 안정적이고 다양한 범위의 임의의 수를 얻을 수 있습니다.

참고 자료: Go 언어 공식 문서 - math/rand 패키지

```