Go rand.Intn Returns the Same Number
Go では、rand.Intn() 関数は 0 (両端を含む) の間の疑似乱数整数を生成します。 ) および n (排他的)。ただし、この関数を使用したコードが常に同じ値を返すとユーザーが報告しています。なぜこのようなことが起こるのでしょうか?
この動作には主に 2 つの理由があります:
初期化の欠如:
rand パッケージはグローバル rand.Intn() を含むすべての乱数ジェネレーターの基礎となるソース。デフォルトでは、このソースは初期化されていないため、値のシーケンスは決定的になります。これを修正するには、rand.Seed() を呼び出して、通常はシステム クロックから取得されるランダムな値でソースを初期化します:
rand.Seed(time.Now().UnixNano())
以上がGo の `rand.Intn()` が同じ数値を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。