2016年7月13日水曜日

開発環境

Think Python (Allen B. Downey (著)、 O'Reilly Media)のChapter 10.(Lists)のExercises 10-8.(No. 2366)を取り組んでみる。

Exercises 10-8.(No. 2366)

コード(Emacs)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import random

t = 1
for i in range(365, 365 - 23, -1):
    t *= (i / 365)

print('{0:.2f}%'.format((1 - t) * 100))

print('random')
for _ in range(5):
    n = 10000
    m = 0
    for _ in range(n):
        s = {random.randrange(1, 366) for _ in range(23)}
        if len(s) != 23:
            m += 1
    print('{0:.2f}%'.format(m / n * 100))

入出力結果(Terminal, IPython)

$ ./birthday_paradox.py
50.73%
random
51.32%
50.21%
50.77%
50.70%
50.71%
$

0 コメント:

コメントを投稿