は、誰も私に教えてくださいすることができ、なぜここに行く例:ゴーrand.Intn同じ番号/値は
https://tour.golang.org/basics/1
常に(10)rand.Intnに対して同じ値を返しますか?
は、誰も私に教えてくださいすることができ、なぜここに行く例:ゴーrand.Intn同じ番号/値は
https://tour.golang.org/basics/1
常に(10)rand.Intnに対して同じ値を返しますか?
2の理由:
あなたはrand.Seed()
を使用してrand
パッケージのrand.Intn()
や他の機能が使用するグローバルSource
をinitalizeする必要があります。例:
rand.Seed(time.Now().UnixNano())
Difficulty with Go Rand packageの可能な複製を参照してください。 rand
のパッケージドキュメントから引用
:などのfloat64やintとして
トップレベルの機能は、デフォルトでは、値の決定論的シーケンスプログラムが実行されるたびに生成ソースを共有します。実行ごとに異なる動作が必要な場合は、Seed関数を使用してデフォルトのSourceを初期化します。
Tourは、その出力をキャッシュGo Playground上の例を実行します。
詳細はWhy does count++ (instead of count = count + 1) change the way the map is returned in Golangを参照してください。
インポートに「時間」を含め、rand.Intn行の前にその行を入れましたが、毎回0を返すようになりました。 – appliedJames
@appliedJames理由#2もご覧ください。それでも問題が解決しない場合は、質問を編集してコードを投稿してください。 [最小限の、完全で検証可能な例]を目指してください(http://stackoverflow.com/help/mcve)。 – icza
よろしくお願いいたします。実際、この全体の質問はおそらく削除されるべきです。 :) – appliedJames
「このようなプログラムが実行される環境は決定的なので、サンプルプログラムを実行するたびにrand.Intnは同じ番号を返します。 –
@BojanB私はそれを見ましたが、私は播種がそれを修正すると思った。 icza(受け入れられた答えを参照)は正しい方向に私を指摘した。 – appliedJames