乙Py先生のプログラミング教室
初学者のためのプログラミング学習サイト

確率

今回は年末の飲み会の余興で
よく用いられる「ビンゴゲーム」
にまつわるものを検証してみました。

解説動画はこちら



ビンゴゲームとは

知らない方は少ないと思いますが
飲み会の余興などで行われる
安易なパーティーゲームの一種です。

ルールや遊び方は
5行x5列のマス目に
1 - 75までの数字が書かれた紙が配られ

ゲームマスターが数字を選び
手持ちの紙の数値が合えば穴を開ける
縦・横・斜めで5マス分の穴が空いたらクリア
というものです。

真ん中のマス目はFreeポケットになっていて
最初から開けられる物も有ります。

そんなビンゴゲームのアルアルを
色々考えてみました。


1. ビンゴ用紙を作ってみる

プログラム上で75個の数値から
25個を選んで、並べてあげれば
ビンゴ用紙(風の出力)の完成です。

import random

numbers = [i for i in range(1,76)]

# ランダムで数値を25個取得する
select = random.sample(numbers,25)
print(select)
print()

for i,n in enumerate(select):
    if i%5==0:
        print()
    print(n,end="\t")
[23, 24, 4, 64, 71, 29, 19, 6, 58, 70, 33, 68,
13, 25, 50, 12, 63, 11, 73, 22, 20, 36, 32, 51, 2]

23 24 4 64 71
29 19 6 58 70
33 68 13 25 50
12 63 11 73 22
20 36 32 51 2

import numpy as np
import pandas as pd

df = pd.DataFrame(np.reshape(select,[5, 5]))
print(df.to_string(index=False,header=False,col_space=8))
pandasで綺麗に描画するとこんなコードです。


もっとたくさん作りたい人向けには
画像化するコードをお送りします。
import random
from PIL import Image, ImageDraw, ImageFont
import matplotlib.pyplot as plt

font = ImageFont.truetype('Arial.ttf', 32)
numbers = [i for i in range(1,76)]

# 作る個数を指定する
n = 2
for i in range(n):
    select = random.sample(numbers,25)
    im = Image.new('RGB', (500, 500), "silver")
    draw = ImageDraw.Draw(im)
    count = 0
    for x in range(5):
      for y in range(5):
        x0,x1,y0,y1 = x*100, x*100+100, y*100, y*100+100
        draw.rectangle((x0, y0, x1, y1), fill="white", outline="black", width=4)
        if count!=12:
            draw.text((x0+32, y0+32), "{0:02}".format(select[count]), (0, 0, 0), font=font, align='center')
        else:
            draw.text((x0+32, y0+32), "●", (0, 0, 0), font=font, align='center')
        count+=1
    plt.imshow(im)
    plt.axis("off")
    plt.show()
bingooo

こんな感じで真ん中フリーポケットの
ランダム数字がかかれた用紙が出来るので
あとはそれをプリントすれば良いですね。

お金をかけたく無い人には
丁度良いかもしれません。



2.ビンゴゲームにおける色々な数字

2-1.25マスの数値の並びの組み合わせ

75 個の数字から
25 個取り出して並べる順列の総数は
こんな感じの数式で表せます。

s
プログラムでは組み合わせや
順列の数を求める事ができます。

import math

n = 75
k = 25

# p = n! / (n - k)!
p = math.perm(n, k)

print(p)
print("{:,}".format(p))
815712000579973729423615859451974909952000000
815,712,000,579,973,729,423,615,859,451,974,909,952,000,000


とてつも無い桁になりますね
ビンゴカードを全通りプリントするのは
辞めた方が良さそうです。


2-2.何回くらいでビンゴになるのか


順列数は多すぎるので全通りは実験出来ません。

代わりにビンゴシミュレーターで
100万回試行してみました。
# ビンゴの場合True , ビンゴでない場合はFalse
def check_bingo(b):
    # 横
    for i in range(5):
        if sum(b[i*5:i*5+5])==0:
            return True
    # 縦
    for i in range(5):
        b1,b2,b3,b4,b5 = b[i],b[i+5],b[i+10],b[i+15],b[i+20]
        if sum([b1,b2,b3,b4,b5])==0:
            return True
    # 斜め
    d1 = [b[d*6] for d in range(5)]
    d2 = [b[d*4] for d in range(1,6)]
    if sum(d1)==0 or sum(d2)==0:
        return True
    return False

# リストの中に数値がある場合はインデックスを、ない場合は-1を返す
def find_index(b,x):
    return b.index(x) if x in b else -1

# 何ターンでビンゴしたかをカウントする
def bingo_count(bingo,numbers):
    count=0
    for num in numbers:
        index = find_index(bingo,num)
        if index!=-1:
            bingo[index] = 0
        count+=1
        if check_bingo(bingo):
            return count
        else:
            continue
    return count

import random
numbers = [i for i in range(1,76)]
random.shuffle(numbers)

n = 1000000
calc = {k:0 for k in range(1,76)}
for i in range(n):
    # ランダムで数値を25個取得してビンゴ用紙を作る
    bingo = random.sample(numbers,25)
    # 真ん中は開ける(数値0は穴開き)
    bingo[12] = 0
    ans = bingo_count(bingo,numbers)
    calc[ans]+=1

# 結果
print("総回数 : {0}回".format(n))
tmp = []
for k,v in calc.items():
    r = v / n * 100
    print("{0:02} 回目, : {1:06}回 , {2:.05}%".format(k,v,r))
    tmp.append([k,v,r])

実行するのにすごく時間が掛かります。
これを描画してみましょう。
# 描画
import matplotlib.pyplot as plt
import pandas as pd

df_b = pd.DataFrame(tmp,columns=["num","count","rate"])
df_b["cumsum"] = df_b["rate"].cumsum()

fig, ax1 = plt.subplots(figsize=(16,8))
ax2 = ax1.twinx()
ax1.bar(df_b["num"],df_b["rate"])
ax2.plot(df_b["cumsum"],color="red")
plt.show()
kakuritu


だいたい
16回くらいやれば、10%くらいの人がビンゴ
41回くらいやれば、半分くらいの人がビンゴ
49回くらいやれば、80%くらいの人がビンゴ
になるようです。




2-3.ビンゴにならずに開けられる数の最大数


1つづつ穴を開けていくと
穴の組み合わせが多すぎるため大変です。

ビンゴ用紙に25個穴が空いた状態から穴を塞いで
ビンゴにならないかどうかを判定して
測定する形にしました。
# 結果のプリント用
def print_bingo(bingo):
    for i,b in enumerate(bingo):
        if i%5==0:
            print()
        print(b,end="\t")
    print()

# ビンゴでない場合True , ビンゴの場合はFalse
def check_bingo(b):
    # 横
    for i in range(5):
        if sum(b[i*5:i*5+5])==5:
            return False
    # 縦
    for i in range(5):
        b1,b2,b3,b4,b5 = b[i],b[i+5],b[i+10],b[i+15],b[i+20]
        if sum([b1,b2,b3,b4,b5])==5:
            return False
    # 斜め
    d1 = [b[d*6] for d in range(5)]
    d2 = [b[d*4] for d in range(1,6)]
    if sum(d1)==5 or sum(d2)==5:
        return False
    return True

count = 0
all_count = 0
seq = [i for i in range(0,25)]

combi = list(itertools.combinations(seq,5))
for c in combi:
    all_count +=1

    # ビンゴを用意(1==穴あき)
    bingo = [1] * 25

    # 穴なしに戻す(0==穴なし)
    for i in c:
        bingo[i]=0

    # ビンゴでないかどうかの判定
    if check_bingo(bingo):
        print(c)
        print_bingo(bingo)
        print()
        count +=1

print(count,all_count)
(0, 6, 12, 18, 24)

0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0

・・・・
48 53130

結果として
穴が20個まではビンゴにならずに
開けられるパターンが存在します。

そんなに穴が開いた状態になった人
いるんでしょうかねえ

逆にめちゃくちゃ運が悪い方を
決めることが出来ます。

シミュレーション結果を用いれば
どれくらいでプレゼントが捌けるのか
計算しやすくなると思いますので
幹事の方は逆算してみると
捗るかも知れません。

今回はビンゴゲームについての
数値検証でした。

それでは。


世の中偽物ばかりです。
A●z●●ですら、コピー商品やそっくり商品ばかりで
うんざりします。

普段目にしているものの殆どは偽物ばかりなんですよ。

しかし世の中には出会った事のない
ホンモノと言うものが存在します。

解説動画はこちら




さて仮定の話ですが
今回は人類史上まだ誰も解いたことのない難問です。

問題:
もし10万シナリオに1つの確率で時間停止系が本当だとしたら
1000本のシナリオを見たときにその中に
1つ本物が含まれる確率はいくらでしょうか?

ポアソン分布に従うと仮定してみます。
ポアソン分布とは不良品の検査などで用いるもので

例えば200個に1個の割合で不良品が発生するとしたとき
10個を取り出したら、1個不良品が混じってる確率は?

と言ったような問題に使えます。

このような確率はポアソン分布に従うとされていますので
確率の計算は
スクリーンショット 2020-05-30 16.37.56
と言う式で表すことができます。

ここでは2つの数がわかれば計算出来ます。

k=出会いたい個数
λ=確率=遭遇確率*個数

kは1シナリオでも会えれば良いので 1です。
λは10万シナリオに1本なので10万分の1 * 1000本です。


早速計算してみましょう。
# 出会いたい本数
k = 1

# 試してみる本数
n = 1000

# 遭遇確率
p = 1/100000

# 確率計算
lamb = p * n
answer = (np.e ** -lamb) * (lamb ** k) / math.factorial(k)

print(answer)

答えは
0.0099

約1%程ですね。

分かりづらいので描画するのと
色々数を変えて試してみましょう。

ポアソン分布を求めるには
scipy.statsのpoisson.pmf(出会いたい本数,確率)で
求められます。

from scipy.stats import poisson
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline

# 出会いたい本数
x =  np.arange(0, 21, 1)
# 試してみる本数
n = 10000
# 遭遇確率
p = 1/100000

# 確率計算
lamb = p * n
y= [poisson.pmf(k, lamb) for k in x]

# 描画
plt.figure(figsize=(16,9))
plt.bar(x, y, align="center", width=0.4, color="red",alpha=0.5, label="Poisson λ= %d" % 10)
for x1,y1 in zip(x,y):
    plt.text(x1, y1+0.05 , '{:.03}'.format(y1) , size = 10, color = "green")
    plt.text(x1, y1+0.07 , '{:.01%}'.format(y1), size = 10, color = "black")
plt.xticks(np.arange(0, 21, 1))
plt.legend()
plt.show()


結果は横軸は出会える本数で縦軸はその確率です。

色々試行本数を変えて試してみると
1万本の時は1本のホンモノに出会えるには9%程ですね。

1man

10万本だと、出会えないのが36%
1本でもホンモノに出会えるのも36%ですね!!!

10man

100万本だと出会えないのが稀になってきますね!!


100man


あくまでも10万本に1本の確率で
本物が有ると仮定した時の話で有るので
出会える保証はありません。

もっと低いかもしれないし
実はもっと高い確率かもしれない。

もし
この世に存在しないと断定するのであれば
この世の全てのシナリオを確認しなければなりませんので

きっとこの世には
有るんです!!!!!!!!!!
そう信じたいんです。

そう
信じるか信じないかは貴方次第なんです。

今回はここまでです。

それでは。

ガチャなどの身近に有る確率の問題を解いてみました。


解説動画はこちら



初めに簡単な問題を

問1. 30人クラスで同じ誕生日の生徒がいる確率は?

考えたい方はここでスクロールを止めて
考えてみてください。








答え:

1組みでも誕生日が一致している確率
= 1 - 全員の誕生日が異なる確率

となるので

計算式は
スクリーンショット 2020-05-24 15.50.12


こんな感じになります。

計算めんどくさいのでPythonで解きます。
from functools import reduce
from operator import mul

n = 30
a1 = [i for i in range(365,365-n,-1)]
a2 = [365 for i in range(n)]
print('{:%}'.format(1- reduce(mul, a1)/reduce(mul, a2)))
70.631624%

出ました。

30人クラスだと7割くらいの確率で
1組みくらいは同じ誕生日の人が居そうですね。

50人までの確率を調べてみましょう。
from functools import reduce
from operator import mul
import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(16,5))
x,y = [n for n in range(2,51)] , []
for n in x:
    a1 = [i for i in range(365,365-n,-1)]
    a2 = [365 for i in range(n)]
    y.append(1-reduce(mul, a1)/reduce(mul, a2))

plt.bar(x,y)
plt.grid()
plt.show()
download

20人クラスでも40%ほど
50人クラスでは97%にもなります。

だいたい会社だと100人超えてくると思うので
1組みは同じ誕生日の人がいるんじゃないかと思います。

問2. 当たる確率1%のガチャ
100回連続で外れる確率は確率は?

ガチャの確率の問題です。

自分もよくガチャ引きますが
3倍祭りとか言ってるのに
全然当たらないですよねーーーー






答えは

100連続で外れる確率
1回引いて外れる確率の(100乗)

 と言うことで
計算は簡単です。

print('{:%}'.format((99/100)**100))
36.603234%

ガチャ確率1%だと
100回引いても3割以上は1回も当たらないんです!!

では
どれくらい引いたら当たるかを
シミュレーションしてみましょう。

当たる確率は 1-外れる確率 で計算できますね。

500回引いた際の当たる確率のシミュレーションです。
import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(16,5))
x,y = [n for n in range(1,501)],[]
for n in x:
    y.append(1-(99/100)**n)

plt.bar(x,y)
plt.grid()
plt.show()
download-1

100回引いた程度だと36%も外れるわけですから
もっと引かないと当たらないですよね。

500回ほど引けばほぼ当たりそうな感じはしますが
確実ではないと言うところがミソです。

本当に1%の確率で当たるのか??
確率はちゃんと1%なのか??

と言う疑問を解消するには
1万人ほどアンケートとってみるしか
ないんじゃないかと思います。

1%の確率で当たるガチャを100回引く
1万人ガチャシミュレーションの結果は・・・

import random

weights = [0.99,0.01]
d = {b:0 for b in range(101)}
for p in range(10000):
    a = 0
    for i in range(100):
        tf = random.choices([False,True], weights=weights)[0]
        if tf:
            a=i+1
            break
    d[a]+=1
import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(16,5))
x = list(d.keys())
y = list(d.values())

plt.bar(x,y)
plt.grid()
plt.show()
download-2

0は外れた人の数、それ以外は当たった回数で何人いるかです。

0のところは先ほどの確率で行くと36%=3600人ほど
外れているのが分かります。

1万人くらいのアンケートをとって
外れてる人が何人いるのかを調べれば
本当にガチャの確率が1%だったのかを
検証できるかもしれませんね。


今回はここまでです。
それでは。


無料マンガアプリでカイジを見ていたら
気になって仕方なくなってしまいました。

解説動画はこちら




さてチンチロリンのルールですが
こんな内容です。

サイコロを3つ同時に振って役が揃うまで振る(最大3回まで)

強い役が勝つ

役名条件
ピンゾロ1・1・1
ゾロ目2・2・2 , 3・3・3 , 4・4・4 , 5・5・5 , 6・6・6
シゴロ4・5・6
出目の大きい順番2枚が同じ、残った1つの目
ションベン役がなかった場合,お椀からサイコロが出た場合
ヒフミ1・2・3

他にも細かなルールは有りますが
今回は割愛します。

さてまずはチンチロリンの役を判定するプログラムを
作ってみましょう。

def tintiro_hand(h):
    # ピンゾロ
    if all([h[0]==1,h[1]==1,h[2]==1]):
        return 1
    # ゾロ目
    if h[0]==h[1] and h[1]==h[2]:
        return 2
    # シゴロ
    if [4,5,6]==list(sorted(h)):
        return 3
        # ヒフミ
    if [1,2,3]==list(sorted(h)):
        return 11
    # 出目 and ションベン
    calc = {}
    for n in h:
        if n in calc:
            calc[n]+= 1
        else:
            calc[n]=1
    if 2 in calc.values():
        return 3 + 7-sorted(calc.items(),key=lambda x:x[1])[0][0]
    else:
        return 10

def judge(h1,h_2):
    if h1==h_2:
        return 'DRAW'
    if h1<h_2:
        return 'WIN'
    else:
        return 'LOSE'


チンチロリンではサイコロを3つ使います。

このサイコロの組み合わせは
itertoolsで求めることが出来ます。

まずは通常のサイコロで戦った際の勝敗を見てみましょう。
import itertools
from fractions import Fraction

hands1 = list(itertools.product([1,2,3,4,5,6],repeat=3))
hands2 = list(itertools.product([1,2,3,4,5,6],repeat=3))
wins = {}
for hand1 in hands1:
    for hand2 in hands2:
        w = judge(tintiro_hand(hand1),tintiro_hand(hand2))
        if w in wins:
            wins[w] +=1
        else:
            wins[w] = 1
total = sum(wins.values())
draw,win,lose =wins['DRAW'],wins['WIN'],wins['LOSE']
print('DRAW\t' , Fraction(draw,total) , ' \t{:%}'.format(draw/total))
print('WIN \t'    , Fraction(win ,total)  , '\t{:%}'.format(win/total))
print('LOSE\t'   , Fraction(lose,total)  , '\t{:%}'.format(lose/total))

DRAW	 1639/5832  	28.103567%
WIN 	 4193/11664 	35.948217%
LOSE	 4193/11664 	35.948217%

だいたい36%ほどで勝ったり負けたりですね。

マンガではここで特別なサイコロが登場します。
それがシゴロ賽です!!!

4,5,6しか出目のない特殊なサイコロ

地下労働施設の班長
大槻が用いたイカサマサイコロです。

これを使うと極端に役の出方が変わります。

通常のサイコロと勝敗を比べてみましょう。
import itertools
from fractions import Fraction

hands1 = list(itertools.product([1,2,3,4,5,6],repeat=3))
hands2 = list(itertools.product([4,5,6,4,5,6],repeat=3))
wins = {}
for hand1 in hands1:
    for hand2 in hands2:
        w = judge(tintiro_hand(hand1),tintiro_hand(hand2))
        if w in wins:
            wins[w] +=1
        else:
            wins[w] = 1
total = sum(wins.values())
draw,win,lose =wins['DRAW'],wins['WIN'],wins['LOSE']
print('DRAW\t' , Fraction(draw,total) , ' \t{:%}'.format(draw/total))
print('WIN \t'    , Fraction(win ,total)  , '\t{:%}'.format(win/total))
print('LOSE\t'   , Fraction(lose,total)  , '\t{:%}'.format(lose/total))

DRAW	 107/1944 	5.504115%
WIN 	 175/1944 	9.002058%
LOSE	 277/324   	85.493827%

相手側の勝率が極端に変わりますね!!!

通常時35%ほどだった負け確率が85%と
50%ほど負ける確率が増加します。

実際に役が出る確率はどういう確率でしょうか?

お互いのサイコロの出目でみてみましょう。

サイコロの出目の組み合わせは
お互い 6**3 で216通りあります。

通常のサイコロを振ってみると
import itertools
import matplotlib.pyplot as plt
%matplotlib inline

hands1 = list(itertools.product([1,2,3,4,5,6],repeat=3))
hands = {}
for hand1 in hands1:
    h = tintiro_hand(hand1)
    if h in hands:
        hands[h] +=1
    else:
        hands[h] = 1

plt.figure(figsize=(12,6))
x = [k for k,v in sorted(hands.items())]
y = [v for k,v in sorted(hands.items())]
for x1,y1 in zip(x,y):
    plt.text(x1, y1+1 , y1 , size = 10, color = "green")
    plt.text(x1, y1+10 , '{:.01%}'.format(y1/216), size = 10, color = "black")
label = ['111','ゾロ目','シゴロ','6','5','4','3','2','1','ションベン','123']
plt.bar(x,y,tick_label=label)
plt.grid()
plt.show()
download-1
こんな確率ですね。
今回は3回振りなおしを考慮していないので
出目を考えるとションベンになる確率が高いですね。

これと比べてシゴロ賽はどうでしょうか?
import itertools
import matplotlib.pyplot as plt
%matplotlib inline

hands = list(itertools.product([4,5,6,4,5,6],repeat=3))
hands2 = {i:0 for i in range(1,12)}
for hand in hands:
    h2 = tintiro_hand(hand)
    if h2 in hands2:
        hands2[h2] +=1
    else:
        hands2[h2] = 1

plt.figure(figsize=(12,6))
x = [k for k,v in sorted(hands2.items())]
y = [v for k,v in sorted(hands2.items())]
for x1,y1 in zip(x,y):
    plt.text(x1, y1+1 , y1 , size = 10, color = "green")
    plt.text(x1, y1+10 , '{:.01%}'.format(y1/216), size = 10, color = "black")
label = ['111','ゾロ目','シゴロ','6','5','4','3','2','1','ションベン','123']
plt.bar(x,y,tick_label=label)
plt.grid()
plt.show()
download-2

強い手の確率が極端に上がります。

見比べてみると瞭然ですね。
スクリーンショット 2020-05-23 17.10.35

マンガではどうやってこのイカサマを見つけたかというと
出目をメモってる三好がいて
その出目の歪さからイカサマサイコロに気づいた・・・
という感じでした。

やはり、データの整備とデータから発見できるかという
まさにデータサイエンス的な要素をもつ
このチンチロリン編は

賭博破戒録カイジの第3章に出てきます。

みていない方はぜひご賞味ください。

最後は倍、いや100倍返しでwww

とまあ、456サイコロは売ってるみたいなので
これを使うと圧倒的に勝てますねーー

やはり、統計って大事ですよねー
今回はこれまでです
それでは



100日後に亡くなってしまう確率を考えてみました。

解説動画はこちら




人が死ぬ確率をどう出すか

一番詳しいのは
保険会社だと聞いています。

死亡した方のデータを持っていて
そこから会社が損しないように
保険料を算出していますので
そのやり方でいきます。

平成30年簡易生命表(男)が発表されているので
それを用いて行きます。

まずはデータ化します。
import numpy as np

rate = [0.00196,0.00025,0.00019,0.00014,0.00011,0.00010,0.00008,0.00007,0.00007,0.00007,
0.00007,0.00008,0.00009,0.00011,0.00014,0.00016,0.00020,0.00024,0.00029,0.00035, 
0.00040,0.00044,0.00047,0.00049,0.00049,0.00049,0.00049,0.00050,0.00051,0.00053, 
0.00055,0.00057,0.00060,0.00063,0.00065,0.00068,0.00072,0.00076,0.00081,0.00087,
0.00094,0.00102,0.00112,0.00123,0.00136,0.00149,0.00164,0.00181,0.00200,0.00221, 
0.00245,0.00274,0.00305,0.00336,0.00368,0.00401,0.00437,0.00481,0.00532,0.00589, 
0.00651,0.00717,0.00788,0.00864,0.00948,0.01047,0.01159,0.01283,0.01419,0.01555, 
0.01695,0.01854,0.02036,0.02240,0.02465,0.02709,0.02964,0.03261,0.03621,0.04053, 
0.04565,0.05149,0.05812,0.06555,0.07417,0.08412,0.09532,0.10774,0.12093,0.13456, 
0.14830,0.16406,0.18130,0.20011,0.22060,0.24284,0.26691,0.29287,0.32075,0.35056, 
0.38229,0.41587,0.45119,0.48808,0.52633]

データは10万人あたりの死亡者数を元に
死亡率を弾き出しています。

40才くらいまで生き残れる確率は?
1-sum(rate[0:40])
0.98

日本に生まれたら
9割以上の確率で40才くらいまでは
生き残れるようです。


死亡率が一番低いのは何歳の時?
np.argmin(rate) , rate[np.argmin(rate)]
(7,7e-05)


7才の時が一番死亡率は低いようです。

逆に死亡率が一番高いのは?
 np.argmax(rate) , rate[np.argmax(rate)]
(104 , 0.52633)

当たり前ですが、高齢になれば生き残る確率も
下がりますね。


20才の時の死亡率は?
 '{:f}%'.format(rate[20] * 100)
0.040000%

20才であれば年間で1万人に4人ほどしか
亡くならない計算ですね。

40才だと死亡率はその2倍以上になっています。

明日なくなる確率は?
 '{:f}%'.format(rate[20] / 365 * 100)
0.000110%


20の人が明日亡くなる確率は
年間の確率を365で割れば良いと思います。

1日あたりだと100万人に一人くらいでしょう。


100日後(まで)に死ぬ確率は?
 '{:f}%'.format(rate[20] / 365 * 100 * 100)
0.010959%

単純に100倍すれば良いかなと

1万人に1人の確率で
100日後に亡くなります。

正直な話
ピンとはこないですよね。

ただし
人が亡くなる時は突然です。

いきなりやってきます。

心構えもなく唐突にです。

家族が亡くなるのは避けられない事です。

その時に思うことは
「何でもっと沢山話しておかなかったんだろう」です。

死ぬ事について考えることは
普通はほとんど無いかと思います。

でも時を重ねるにつれ
その確率はどんどん上がっていきます。

いつかは誰しも経験する事になるのです。

それが明日かもしれないし
100日後かもしれない。

わからないから今日1日を
大切にした方が良いんだと思いますね。

今日はここまでです
それでは

このページのトップヘ