前提・実現したいこと
「機械学習のエッセンス」 P.215~216で質問があります。
np.random.seed()の使い方がよくわかりません。
最後の部分で以下のように表示されます。
print(d1.get_sum()) #34
print(d2.get_sum()) #33
本文中には「seed関数はグローバルな状態を変化させる」とありますが、
なぜ異なる値を算出するのでしょうか?
よろしくお願いします。
該当のソースコード
Python
1import numpy as np 2 3# よくない実装の例 4class Dice: 5 def __init__(self): 6 np.random.seed(0) 7 self.sum_ = 0 8 9 def throw(self): 10 self.sum_ += np.random.randint(1, 7) 11 12 def get_sum(self): 13 return self.sum_ 14 15import dice2a 16 17d1=dice2a.Dice() 18for _ in range(10): 19 d1.throw() 20 21print(d1.get_sum()) #39 22 23d2=dice2a.Dice() 24for _ in range(10): 25 d2.throw() 26 27print(d2.get_sum()) #39 28 29d1=dice2a.Dice() 30d2=dice2a.Dice() 31for _ in range(10): 32 d1.throw() 33 d2.throw() 34 35print(d1.get_sum()) #34 36print(d2.get_sum()) #33
「乱数を発生させることも状態を変化させるからです。」
上記の意味がわかりません。もう少し噛み砕いて説明していただけないでしょうか?
よろしくお願いします。