前提・実現したいこと
「機械学習のエッセンス」 P.215~216で質問があります。
np.random.seed()の使い方がよくわかりません。
最後の部分で以下のように表示されます。
print(d1.get_sum()) #34
print(d2.get_sum()) #33
本文中には「seed関数はグローバルな状態を変化させる」とありますが、
なぜ異なる値を算出するのでしょうか?
よろしくお願いします。
該当のソースコード
Python
import numpy as np # よくない実装の例 class Dice: def __init__(self): np.random.seed(0) self.sum_ = 0 def throw(self): self.sum_ += np.random.randint(1, 7) def get_sum(self): return self.sum_ import dice2a d1=dice2a.Dice() for _ in range(10): d1.throw() print(d1.get_sum()) #39 d2=dice2a.Dice() for _ in range(10): d2.throw() print(d2.get_sum()) #39 d1=dice2a.Dice() d2=dice2a.Dice() for _ in range(10): d1.throw() d2.throw() print(d1.get_sum()) #34 print(d2.get_sum()) #33
「乱数を発生させることも状態を変化させるからです。」
上記の意味がわかりません。もう少し噛み砕いて説明していただけないでしょうか?
よろしくお願いします。
まだ回答がついていません
会員登録して回答してみよう