golangのrandパッケージの使い方を詳しく解説

PHPz
リリース: 2023-04-06 10:31:58
オリジナル
1769 人が閲覧しました

Go は、Google によって開発されたオープンソース プログラミング言語です。 Go 言語の特徴は、シンプルさ、スピード、安全性、同時実行性です。 Go には、多くの強力で便利な関数を含む、非常に人気のある標準ライブラリがあります。その 1 つは、疑似乱数を生成するために使用される 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」パッケージをインポートします。これらはそれぞれ乱数を生成し、結果をコンソールに出力するために使用されます。次に、 rand.Int63() 関数を呼び出します。この関数は、32 ビットまたは 64 ビットのランダムな整数を返します。ここで使用されるシード番号はシステム時間であるため、生成される乱数は毎回異なることに注意してください。

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) の整数シーケンスをランダムな順序で返します。
  • シャッフル: 可変長配列をランダムな順序でシャッフルします。

概要: rand パッケージは、乱数の生成に役立ついくつかのシンプルで実用的な関数を提供します。ただし、 rand パッケージで生成される乱数はランダムに見えますが、実際には真の乱数ではないことに注意してください。したがって、生成された乱数が予測不可能であり、より高度なセキュリティ要件を満たす必要がある場合は、より複雑な乱数生成アルゴリズムを使用する必要があります。

以上がgolangのrandパッケージの使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!