5

簡単な質問があります。私は現在、random.choice()を使用してリストから選択していますが、なぜ常に同じアイテムを呼び出すのか疑問に思っていました。プログラムを停止して再起動すると変化します。ランダムクラスがどのように機能し、それがこれを行うようにするかを誰かが私に説明できますか?

ありがとう

4

1 に答える 1

11

これは、あなたが何をしている可能性が最も高いかについての私の推測です:

import random

l = [1,2,3,4,5]
random.Random(500).choice(l)
# 4
random.Random(500).choice(l)
# 4
random.Random(500).choice(l)
# 4

同じシードを持つ実際の Random クラスを使用し、毎回新しいインスタンスを作成している場合、同じ疑似乱数操作を実行しています。これは実際には、ルーチンの将来の実行で再現可能なランダム化を行うための機能 (シード) です。

シードでこれを行うか:

l = [1,2,3,4,5]
r = random.Random(500) # seed number is arbitrary 
r.choice(l)
r.choice(l)

または、便利な方法を使用します。 random.choice(l)

于 2012-04-16T21:46:14.253 に答える