>백엔드 개발 >Golang >golang에서 rand 패키지를 사용하는 방법에 대한 자세한 설명

golang에서 rand 패키지를 사용하는 방법에 대한 자세한 설명

PHPz
PHPz원래의
2023-04-06 09:12:401838검색

Go는 Google에서 개발한 오픈 소스 프로그래밍 언어입니다. Go 언어의 특징은 단순성, 속도, 안전성, 동시성입니다. Go에는 강력하고 유용한 많은 기능을 포함하는 매우 인기 있는 표준 라이브러리가 있습니다. 그 중 하나는 의사 난수를 생성하는 데 사용되는 rand 패키지의 함수입니다.

rand 패키지는 난수를 생성할 수 있는 몇 가지 기능을 제공합니다. 이러한 함수는 의사 난수 생성기입니다. 즉, 무작위로 보이지만 실제로는 시드 번호에 의해 생성되는 일련의 숫자를 생성합니다. 동일한 시드 번호를 사용하면 동일한 의사 난수 시퀀스가 ​​생성됩니다. 따라서 생성된 난수가 예측 불가능하고 더 높은 보안 요구 사항을 충족하는지 확인해야 하는 경우 더 복잡한 난수 생성 알고리즘을 사용해야 합니다.

rand 패키지에서 가장 일반적으로 사용되는 함수는 Int, Intn 및 Float64입니다. 다음에서는 해당 함수를 사용하는 방법을 소개합니다.

1. Int

Int 함수는 [int64) 범위에서 음이 아닌 임의의 정수를 반환합니다. 다음은 Int 함수의 사용법입니다.

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    // 产生一个随机整数
    var num int64 = rand.Int63()

    fmt.Println(num)
}

위 코드에서는 먼저 난수를 생성하고 결과를 콘솔에 출력하는 데 사용되는 "rand" 및 "fmt" 패키지를 가져옵니다. 그런 다음 32비트 또는 64비트 임의의 정수를 반환하는 rand.Int63() 함수를 호출합니다. 여기서 사용된 시드 번호는 시스템 시간이므로 생성되는 난수는 매번 다릅니다.

2. Intn

Intn 함수는 [0, n) 범위에서 음이 아닌 임의의 정수를 반환합니다. 다음은 Intn 함수의 사용법입니다.

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    // 产生一个0-100的随机整数
    num := rand.Intn(100)

    fmt.Println(num)
}

위 코드에서는 rand.Intn(100) 함수를 호출합니다. 이 함수는 0보다 크거나 같고 100보다 작은 정수를 반환합니다.

3.Float64

Float64 함수는 [0.0, 1.0) 범위의 임의의 부동 소수점 숫자를 반환합니다. 다음은 Float64 함수의 사용법입니다.

package main

import (
    "fmt"
    "math/rand"
)

func main() {
    // 产生一个随机浮点数
    num := rand.Float64()

    fmt.Println(num)
}

위 코드에서는 rand.Float64() 함수를 호출합니다. 이 함수는 0보다 크거나 같고 1보다 작은 임의의 부동 소수점 숫자를 반환합니다.

위의 일반적으로 사용되는 함수 외에도 rand 패키지는 다음과 같은 다른 함수도 제공합니다.

  • Int31: [int32) 범위에서 음이 아닌 임의의 정수를 반환합니다.
  • Int63n: [0,n) 범위에서 음이 아닌 임의의 정수를 반환합니다.
  • Perm: [0,n)의 정수 시퀀스를 무작위 순서로 반환합니다.
  • Shuffle: 가변 길이 배열을 무작위 순서로 섞습니다.

요약: rand 패키지는 난수 생성에 확실한 도움을 줄 수 있는 몇 가지 간단하고 실용적인 기능을 제공합니다. 그러나 rand 패키지에서 생성된 난수는 무작위로 보이지만 실제로는 진정한 난수가 아니라는 점에 유의해야 합니다. 따라서 생성된 난수가 예측 불가능하고 더 높은 보안 요구 사항을 충족하는지 확인해야 하는 경우 더 복잡한 난수 생성 알고리즘을 사용해야 합니다.

위 내용은 golang에서 rand 패키지를 사용하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.