트랙
/
Go
Go
/
학습 과정
/
무작위성
무작

무작위성 에서 Go

2개의 연습 문제

무작위성 소개

math/rand 패키지는 의사 난수를 생성하는 기능을 제공해요.

다음은 0과 99 사이의 무작위 정수를 만드는 방법이에요:

import "math/rand"

n := rand.Intn(100) // n is a random int, 0 <= n < 100

rand.Float64 함수는 0.0과 1.0 사이의 무작위 실수를 반환해요:

f := rand.Float64() // f is a random float64, 0.0 <= f < 1.0

슬라이스(또는 다른 데이터 구조)를 섞는 기능도 있어요:

x := []string{"a", "b", "c", "d", "e"}
// shuffling the slice put its elements into a random order
rand.Shuffle(len(x), func(i, j int) {
	x[i], x[j] = x[j], x[i]
})

시드

math/rand 패키지가 만들어 내는 숫자 열은 진짜 무작위가 아니에요. "시드" 값을 하나 정하면, 결과는 완전히 결정적이에요.

Go 1.20 이상에서는 시드가 자동으로 무작위하게 선택되기 때문에, 프로그램을 실행할 때마다 다른 난수 열을 보게 돼요.

그 이전 버전의 Go에서는 시드의 기본값이 1이었어요. 그래서 프로그램을 실행할 때마다 다른 수열을 얻으려면, 난수를 가져오기 전에 현재 시각 같은 값으로 난수 생성기에 직접 시드를 설정해야 했어요.

rand.Seed(time.Now().UnixNano())
GitHub에서 편집 링크가 새 창이나 탭에서 열려요

무작위성 배우기

연습이 잠겨 있어요

무작위성 개념을 연습하려면 연습 문제 2개를 더 잠금 해제해요