Up

誕生日が同じ人達がいる確率

 

人の人の集まりにおいて誕生日が同じ人達がいる確率を求める。人の人の誕生日がすべて異なる確率をとおくと

である。は以下のようにして求めることができる。

まず、1人目の人の誕生日が与えられたとき、2人目の人の誕生日が異なるのは、1年を日としたとき、日から1人目の人の誕生日を除いた日のどれかが誕生日である場合なので、その確率は

である。1人目から人目までの人の誕生日がお互いに異なる確率をで表すと、1人目から人目までの誕生日がお互いに異なる確率は、人目の人の誕生日が1人目から人目までの人の誕生日を日から除いた日のどれかが誕生日である場合なので、

が成り立つ。

上のことを、 まで繰り返して、次式を得る。

上の考え方をプログラムで表すと以下のようになる。

 

#include <iostream>

#include <iomanip>>

 

using namespace std;

 

int main() {

        double dp = 1.0;

        int n;

        cout << "n = ";

        cin >> n;

        cout << endl;

        for (int i = 2; i <= n; i++) {

                dp *= (365.0 - i + 1) / 365.0;

                cout << "N = " << left << setw(5) << i;

                cout << "P = " << setprecision(5) << 1.0 - dp << endl;

        }

 

        cout << endl << "何か文字キーを押してから、Enterキーを押して終了。" << endl;

        char ck;

        cin >> ck;

        return 0;

}

 

上のプログラムを、Visual Studio 2015で新規作成するときは、まず、メニュ項目「ファイル|新規作成|プロジェクト」を選ぶ。

表示された「新しいプロジェクト」ダイアログウィンドウにおいて、「テンプレート|Visual C++|全般」を選んで表示されるものから「空のプロジェクト」を選んでプロジェクトを作成する。

プロジェクトが作成されたら、メニュ項目「プロジェクト|新しい項目の追加」を選ぶ。表示される「新しい項目の追加」ダイアログウィンドウにおいて「Visual C++|コード」を選び、表示されたものから「C++ファイル(.cpp)」を選ぶ。

追加項目として表示されるC++ファイルに上のコードを書き込めばよい。実行例を図1に示す。

図1

 

Visual Studio 2015におけるC++プログラムの新規作成については<ウェブサイト>を参照されたい。

 

 

Up