ホームページ >バックエンド開発 >Golang >Golang で乱数を使用してシミュレーションするにはどうすればよいですか?

Golang で乱数を使用してシミュレーションするにはどうすればよいですか?

PHPz
PHPzオリジナル
2024-06-06 13:16:57563ブラウズ

乱数シミュレーションに math/rand パッケージを使用する: math/rand パッケージをインポートします。 time.Now().UnixNano() を使用して乱数ジェネレーターを初期化します。 rand.Intn(n) を使用して、0 から n-1 までのランダムな整数を生成します。 rand.Float64() を使用して、0 から 1 までの浮動小数点数を生成します。

如何在 Golang 中使用随机数进行模拟?

Golang で乱数を使用してシミュレーションする方法

乱数を使用したシミュレーションは Golang の一般的なタスクであり、ゲームやコンピューター シミュレーションの人工知能など、さまざまなアプリケーションやアルゴリズムの作成に使用できます。イベント。

math/rand パッケージの使用

Golang には、乱数の生成に必要なすべての機能を提供する math/rand という組み込みパッケージが用意されています。これを使用するには、パッケージをプログラムにインポートします。 math/rand 的内置包,它提供了生成随机数所需的所有功能。要使用它,请将包导入你的程序:

import (
    "math/rand"
    "time"
)

初始化随机数生成器

在生成随机数之前,我们必须先初始化随机数生成器。推荐使用 time.Now().UnixNano() 作为随机数种子,它可以确保每次程序执行时生成不同的随机数序列:

rand.Seed(time.Now().UnixNano())

生成随机数

现在我们可以生成随机数了。rand.Intn(n) 函数可生成一个 0 到 n-1 之间的随机整数(不包括 n)。例如,要生成一个 0 到 100 之间的随机整数,可以使用:

num := rand.Intn(100)

rand.Float64()

prob := rand.Float64()

乱数ジェネレーターを初期化する

乱数を生成する前に、まず乱数ジェネレーターを初期化する必要があります。乱数シードとして time.Now().UnixNano() を使用することをお勧めします。これにより、プログラムが実行されるたびに異なる乱数シーケンスが確実に生成されます。数値

これで、乱数を生成できるようになりました。 rand.Intn(n) 関数は、0 ~ n-1 (n を除く) のランダムな整数を生成します。たとえば、0 から 100 までのランダムな整数を生成するには、次のように使用できます:

package main

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

func main() {
    rand.Seed(time.Now().UnixNano())

    for i := 0; i < 10; i++ {
        num := rand.Intn(6) + 1
        fmt.Printf("掷出 %d\n", num)
    }
}

rand.Float64() この関数は、0 から 1 までの浮動小数点数を生成できます: 🎜rrreee🎜実用的なケース: サイコロを振るシミュレーション 🎜🎜 サイコロを振るプロセスをシミュレートする簡単なプログラムを作成しましょう: 🎜rrreee🎜 このプログラムを実行すると、1 から 6 までの一連の乱数が生成され、サイコロを振るプロセスをシミュレートします。 🎜

以上がGolang で乱数を使用してシミュレーションするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。