見出し画像

だれでもポケカプログラミング その1 マリガンの確率①

アルセウスVが2ターン目にスターバース打てる確率知りたいと思って簡単なスクリプト組んでみたら1時間程度で欲しいものが作れたので、自分が記憶喪失になった時用に書きます。

今回はマリガンになる確率を算出します。たぶん誰でも3分で作れる。

環境はgoogle colabを使ってます。準備時間30秒。下記参照。
https://www.google.com/search?q=google+colaboratory+%E5%88%9D%E5%BF%83%E8%80%85

マリガンになる確率、60枚のデッキから7枚引いてその中にたねポケモンが1匹もない確率ですね。たねポケモンを10枚入れてたとしたらたぶん一番簡単な計算式は1ドロー目の確率50/60、2ドロー目の確率49/59、3ドロー目の確率48/58…と7ドロー目までやって掛け算すればよいので(あってる?)、25.86%になるっぽい。

ではレッツプログラミング!

デッキ = ['たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他']

デッキに10枚のたねポケと50枚のその他のカードを入れます。詳しくは下記だ!
https://www.google.com/search?q=python%E9%85%8D%E5%88%97

手札 = []

空っぽの手札を用意します。

random.shuffle(デッキ)

デッキをシャッフルします。これはこういうものと思ってくれ。詳しくは下記だ!
https://www.google.com/search?q=python+random+%E3%82%B7%E3%83%A3%E3%83%83%E3%83%95%E3%83%AB

for i in range(7):
  手札.append(デッキ.pop())

7回ドローします。デッキから1枚取ってきて、手札に加える。これを7回繰り返す。1行目のforループが繰り返しの意味ね。
https://www.google.com/search?q=python+for
https://www.google.com/search?q=python+%E9%85%8D%E5%88%97+pop+append

ここまでの5行を実行するとこんな感じになります。

#シャッフルに必要なもの
import random

デッキ = ['たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ', 'たねポケ',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他',
        'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他', 'その他']
手札 = []

#デッキをシャッフル
random.shuffle(デッキ)

#手札を7枚引く
for i in range(7):
  手札.append(デッキ.pop())

#実行結果を表示
print('実行結果:')
print(手札)

実行結果:
['その他', 'その他', 'その他', 'たねポケ', 'その他', 'その他', 'たねポケ']

たねポケが2枚引けました!最後の二行のprintっていうのは画面に表示するコマンドね。

次の記事に続きます。

コメント機能がないので何かあればXのDMへどうぞ。

次の記事


この記事が気に入ったらサポートをしてみませんか?