Table des matières

Lancers de pièces ("pile ou face")

On considère des lancers de pièces, “pile ou face” ("Coin flipping", “coin tossing”, or “heads or tails” en anglais), en faisant l'hypothèse d'une probabilité égale d'occurrence des 2 possibilités.

Simulation

Voici un programme permettant de simuler et traiter des séries de lancers de pièces. Le programme peut être complété par une analyse statistique des séries (moyennes et écart-types de “séries de séries”) et par des représentations graphiques des résultats avec comparaison à la distribution “théorique” (binomiale).

coin_tossing-01.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Statistics on coin flipping series of given number of coins.
Comparison with infinite mean solution : binomial distribution and
Pascal's triangle.
"""
 
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import random
import collections
 
def nheads(n):
    """
    return number of heads for n equally likely outcomes coin flipping
    """
    return sum([random.choice(values) for i in range(n)])
 
values = [0,1] # tail or head
nflips = 10
# Pascal's triangle :
pt = [[1],[1,1]]
for i in range(len(pt),nflips+1):
    pt.append([1]+[pt[i-1][j-1] + pt[i-1][j] for j in range(1,i)]+[1])
print(pt[nflips], sum(pt[nflips]))  # theoretical distribution
 
nb = 102400
heads = [nheads(nflips) for j in range(nb)]
#print heads
c = collections.Counter(heads)
for i in range(nflips+1):
    print(i,c[i],pt[nflips][i])

Binomiale expérimentale : Galton board



Voir aussi :