前提・実現したいこと
progateで基礎学習を終え、pythonの練習問題としてモンテカルロ・シミュレーションという方法を用いて円周率を求めるコードを書いています。
発生している問題・エラーメッセージ
x = random.random() y = random.random() この2文を記述する位置の違いで想定とは違った結果になってしまいました。 どうしてこのようなことが起きてしまうのか理由を知りたいです。
該当のソースコード
Pytnon3
1#自分で記述 2import random 3n = int(input("実行回数>")) 4nc = 0 5x = random.random() 6y = random.random() 7for i in range(0,n): 8 if x**2 + y**2 < 1: 9 nc += 1 10 11pi = 4.0 * nc / n 12print(pi) 13#実行結果 14#実行回数>1000 15#4.0 16 17 18#回答 19import random 20n = int(input('実行回数> ')) 21nc = 0 22for i in range(0,n) : 23 x = random.random() 24 y = random.random() 25 if x**2 + y**2 < 1 : 26 nc += 1 27pi = 4.0 * nc / n 28print(pi) 29 30#実行結果 31#実行回数> 1000 32#3.188 33
試したこと
ちらっと触れたことのある「スコープ」というものかと思いましたが、for文の前に記述しているので私には問題がなさそうに見えてしまいます。
初学者の私に少しだけお力添えお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。