Published Date : 2020年11月21日15:11

連続して成功する確率について、PythonとFlaskを使った簡単なWEBアプリを作成してみましょう
Let's create a simple web app using Python and Flask for the probability of continuous success


This blog has an English translation


YouTubeにアップした動画、「【日本語解説】連続して成功する確率について、PythonとFlaskを使った簡単なWEBアプリを作成してみましょう。」の補足説明の記事です。

Here's a little more about the 「【Python】Let's create a simple web app using Python and Flask for the probability of continuous success.」 video I uploaded to YouTube.

字幕を付けるなら、英語音声と日本語音声の二つに分けたほうが良いと思ったので、今回から同じ動画だが音声が日本語と英語に分かれたものをアップしました。

I thought it would be better to separate the video into English audio and Japanese audio instead of adding subtitles to the video, so I uploaded the same video with Japanese and English audio separately.

ページの頭に日本語解説動画、ページの最後に英語解説動画のリンクが貼られてます。

There is a Japanese explanation video at the top of the page, and an English explanation video link at the end of the page.

【日本語解説】連続して成功する確率について、PythonとFlaskを使った簡単なWEBアプリを作成してみましょう。


目次

Table of Contents




① 動画の説明
① Video Description



連続して成功する確率について、PythonとFlaskを使った簡単なWEBアプリを作成してみましょう。

Let's create a simple web app using Python and Flask for the probability of continuous success.

コインの表が出る確率は2分の一、裏も二分の一で共に50%です。

The probability of the coin appearing on the front side is 1 in 2, and the probability of appearing on the back side is 1/2, and both are 50%.

では、一つのコインを投げて続けて、連続して表が出る確率の場合はどうでしょうか?

Then, what about the probability that a coin will appear as a head continuously after a single coin is tossed?

例えば3回なら、2分の一の3乗で確率は8分の一です。

For example, if you throw 3 times, the probability is 1 in 8 with 1 in 2 raised to the power of 3.

裏が連続して3回出る確率も同じです。

In other words, It can be said that the probability of the back side appearing 3 times in a row is the same.

成功する確率と失敗する確率の二つの事象に対しても考えは同じです。

We have the same idea about the probability of success and the probability of failure.

成功する確率が1%、失敗する確率が99%場合どうなるか考えてみましょう。

Suppose you have a 1% chance of success and a 99% chance of failure.

成功する確率が1%という低い場合でも、失敗する確率が減れば、成功する確率が上がります。

Even if the probability of success is as low as 1%, the probability of success increases as the probability of failure decreases.

つまり、連続して失敗する確率が減れば、どこかのタイミングで高確率で成功することを意味しています。

This means that if the probability of consecutive failures is reduced, there is a high probability of success at some point in time.

IPythonで試してみましょう。

Try it with IPython.

In [1]: p = 1

In [2]: n = 300

In [3]: 1-(1-(p/100))**n
Out[3]: 0.9509591059287142

関数電卓でも同じことが簡単にできます。

You can easily do the same with Scientific mode.

では、様々な確率と試行回数を何度も確認できるように、簡単なアプリを作成してみましょう。

Now let's create a simple app that lets you see the various probabilities and trials over and over again.

While文とinput関数を使用して、ユーザーの入力内容を確かめるようにします。

Use the While statement and the input function to verify the user's input.

その後確率を計算して、画面に表示させます。

Then calculate the probability and display it on the screen.

print関数を多用して、見やすくします。

Use the print function extensively to make it easier to see.

99.9%以上の成功確率を導き出すには、何回試行すればいいのかを表示させます。

Show how many attempts to achieve a 99.9% or greater probability of success.

アプリを繰り返すかどうかの選択ができるようにします。

You can choose whether to repeat the application or not.

それではアプリを試してみましょう。

Let's try the application.

確率の小数点以下の表示が大きすぎるので、少なくなるように調整しましょう。

The decimal point of the probability is too large, so let's adjust it to be less.

確率が小さすぎると、計算に時間がかかりますので、ほどほどにしたほうが無難です。

If the probability is too small, it takes time to calculate, so it's better to be moderate.

大体100万分の一の確率あたりから目に見えて計算時間が増えていきます。

The calculation time increases visibly from a probability of about one in 1 million.

ではFlaskを使ってWebアプリケーションを作成しましょう。

Now let's create a Web application using Flask.

Flaskについては以前の動画を参考にしてください。

For more information on Flask, check out my previous videos and other people's websites.

いつも通りVSコードを立ち上げ、HTMLとPythonスクリプトを作成していきます。

As usual, start the VS code and create HTML and Python scripts.

新しいフォルダ
    templates
        application.html
    application.py


以上です。お疲れ様です。

That's all. Thank you for your hard work.


【Python】Let's create a simple web app using Python and Flask for the probability of continuous success.