質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

852閲覧

python コイン投げの表:裏の比を調べる問題の中の、グラフの書き方について

wonwoo

総合スコア1

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/28 00:38

編集2020/05/28 03:54

前提・実現したいこと

「コイン投げ」シミュレーションプログラムを参考にして、コイン投げ回数を「numFlips」が「10,20,30,…,100,200,300,…,10000」のように増えるようなグラフで、シミュレーション結果の表と裏の回数の比を表示せよ。
という問題です。

発生している問題・エラーメッセージ

グラフの書き方を教えてください。

該当のソースコード

python

試したこと

import random
import numpy as np
import matplotlib.pyplot as plt

def flip(numFlips):
heads = 0
for i in range(numFlips):
if random.choice((0, 1)) == 0:
heads += 1
return heads/numFlips

numflips_list = [10]
for a in range(1, 4):
for b in range(2, 11):
numflips_list.append(b*10**a)
print(numflips_list)

for i in range(len(numflips_list)):
print(flip(numflips_list[i]))

x = np.numflips_list
y = np.flip(numflips_list[i])

plt.plot(x, y, "o-")
plt.show()

これだと numflips_listとflip(numflips_list[i]) を出力するところまではいくのですが、グラフはエラーが出てしまい、できませんでした。

エラーコード→
AttributeError Traceback (most recent call last)
<ipython-input-6-bcd8e5dee548> in <module>
19 print(flip(numflips_list[i]))
20
---> 21 x = np.numflips_list
22 y = np.flip(numflips_list[i])
23

~\anaconda3\lib\site-packages\numpy_init_.py in getattr(attr)
218 else:
219 raise AttributeError("module {!r} has no attribute "
--> 220 "{!r}".format(name, attr))
221
222 def dir():

AttributeError: module 'numpy' has no attribute 'numflips_list'

改善すべき点を教えていただけると、助かります。

※自分がpython初心者であるゆえ、何が間違っているのかもあまり把握できておらず、丸投げな質問になってしまい、申し訳ありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wonwoo

2020/05/28 01:12

エラーコード: AttributeError Traceback (most recent call last) <ipython-input-6-bcd8e5dee548> in <module> 19 print(flip(numflips_list[i])) 20 ---> 21 x = np.numflips_list 22 y = np.flip(numflips_list[i]) 23 ~\anaconda3\lib\site-packages\numpy\__init__.py in __getattr__(attr) 218 else: 219 raise AttributeError("module {!r} has no attribute " --> 220 "{!r}".format(__name__, attr)) 221 222 def __dir__(): AttributeError: module 'numpy' has no attribute 'numflips_list'
quickquip

2020/05/28 02:55

情報はこの欄ではなくて質問に追記してください。
guest

回答1

0

私の回答は役に立たなかったのですね。
Python - pythonで「コイン投げ」シミュレーションプログラムについて|teratail


改善すべき点を教えていただけると、助かります。

np.numflips_listが間違っています。numflips_listはnumpyの属性ではなく、変数なので、そのまま代入してください。np.flip(numflips_list[i])も同様です。

また、y = np.flip(numflips_list[i])は、ループの際に上書きしていますから、配列に追加しないといけません。

投稿2020/05/28 02:52

Lhankor_Mhy

総合スコア36960

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

wonwoo

2020/05/28 03:56

参考にはさせていただいたのですが、うまくできませんでした、すみません。 ありがとうございます。やってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問