Article épinglé

dimanche 30 août 2020

Tirage sans remise de k n° parmis N avec m manches




import numpy as np
import matplotlib.pyplot as plt
def tirage_sans_remise(N,k):
    # cette fonction tire k numeros sans remise
    # parmi N numeros
    liste=[]
    tirage=[]
    for i in range (N):
        liste.append(i+1)
   
    for i in range(k):
        sel=np.random.choice(liste)
        tirage.append(sel)
        liste.remove(sel)
    return tirage
        
#nombre de n° possibles
f=6
# n tirage pour une manche
n=3
# nbre de manches = m
m=5

ntirages=[]
for t in range(m):
    ntirages.append(tirage_sans_remise(f,n))
print("Liste des ",m," manches")
print(ntirages)


tot=[]
for i in range (f):
    s=0
    for j in range (m):
        s=s+ntirages[j].count(i+1)    
    tot.append(s)
print ("Bilan des sorties des tirages pour toutes les manches")
print(tot)

# gaphique
plt.bar(range(1,f+1),tot)
plt.title("Cumul des tirages")
plt.xlabel("N° possibles(variable f)")
plt.ylabel("Total des sorties")
plt.show()

mercredi 26 août 2020

Probabilités - Paradoxe de Parrondo

Le paradoxe de Parrondo est un paradoxe de la théorie des jeux qui est bien souvent décrit comme « une stratégie qui gagne avec des jeux perdants ». Elle a été nommée du nom de son créateur Juan Parrondo, un physicien de l'Université complutense de Madrid. Une description mathématiquement plus rigoureuse est :

Étant donné 2 jeux, chacun ayant une probabilité de perte plus grande que celle de gain, il est possible de construire une stratégie gagnante en jouant les 2 jeux alternativement.

Ce paradoxe est inspiré par les propriétés mécaniques des cliquets, instruments à dents de scie, couramment utilisés en automobile et dans les montres que l'on remonte manuellement.




lundi 24 août 2020

Maths et stats - extrapolation d'une population à partir d'un échantillon

 

https://github.com/exo7math/python2-exo7/blob/master/bigdata/bigdata-1.pdf


Activité 3 (La formule des tanks).

Objectifs : déterminer la taille N d’une série 1, . . . ,N en ne connaissant que quelques numéros

tirés au hasard. En plein milieu de la seconde guerre mondiale les Allemands produisent un nouveau tank plus performant. Les Alliés s’inquiètent car ils ne savent pas combien de ces nouveaux tanks sont produits. Les services de renseignements estiment la production à 1500 tanks par mois. Que disent les mathématiques ? Les Alliés ont intercepté 4 tanks produits le même mois et qui portent les numéros :

143 - 77 - 198 - 32

Combien de tanks ont été produit ce mois ?

Modélisation. 

Sachant que les tanks sont numérotés de 1 à N chaque mois, à quelle valeur peut être estimée la production mensuelle N, connaissant un échantillon de k numéros [n1, n2, . . . , nk] ?

1. La formule des tanks. On note m le maximum des éléments de l’échantillon. On note k la taille de l’échantillon. Alors la formule des tanks estime : N = m + m/k -1

Programme cette formule en une fonction formule_tanks(echantillon) qui renvoie cette estimation de N. Quelle est ton estimation pour le nombre de tanks ?

2. Le double de la moyenne. On peut essayer d’autres estimations. Par exemple on peut estimer N comme le double de la moyenne de l’échantillon. Programme une fonction double_moyenne(echantillon) qui renvoie cette nouvelle estimation. Compare avec la formule des tanks.

Pour tester l’efficacité de la formule des tanks on va faire le cheminement inverse : on fixe un entier N, on choisit au hasard un échantillon de k éléments et on regarde si nos formules permettent de bien approcher N.

3. Tirage sans remise. Programme une fonction tirage_sans_remise(N,k) qui renvoie une liste de k entiers différents compris entre 1 et N (inclus).

4. Erreurs. Programme une fonction erreurs(N,k) (ou mieux erreurs(N,k,nb_tirages=1000)) qui calcule l’erreur moyenne commise par nos formules. Pour cela :

  • Effectue un tirage sans remise de k entiers plus petits que N.
  • Calcule la valeur N1 obtenue à partir de cet échantillon par la formule des tanks.
  • Calcule l’erreur commise e = |N − N1|.

En faisant ceci pour un grand nombre de tirages, calcule l’erreur moyenne commise. Fais le même travail avec l’autre formule et renvoie les deux erreurs moyennes.

Pour 20 entiers plus petits que 1000 (k = 20 et N = 1000) quelle est la meilleure formule et à quelle erreur peut-on s’attendre ?

À la fin de la guerre les registres Allemands ont été récupérés et indiquaient une production de 245 chars mensuels ! Cette formule est aussi utilisée pour estimer la production d’un produit (par exemple d’un téléphone) à partir des numéros de série.

Solution pour les 3 premières questions ici
https://www.ipa-troulet.fr/cours/attachments/article/542/correction.txt

Cheminement et solution du 4 là
https://www.ipa-troulet.fr/cours/attachments/article/542/exo%204%20tank.odt


samedi 22 août 2020

CNRS - Courbe de Gauss

Pour info, dans le paragraphe du dessous 3 liens vers des articles du CNRS.

Pour plus de précisions et de renseignements sur la gaussienne (aussi connue sous le nom de « la courbe en cloche »), nous vous conseillons, selon votre niveau et/ou votre intérêt, de lire ça (piste verte) ou ça (piste bleue) ou bien, pour les plus téméraires, ça (piste noire). Il s’agit du même article écrit pour trois niveaux de lecture différents. 


Extrait de la piste verte:

Une récréation inventée

Le second exemple est une histoire inventée, mettant en scène un mathématicien des années 1900 et son boulanger, qui lui livre tous les jours un pain qui pèse en principe deux livres. Tous les jours le mathématicien enregistre devant témoins le poids du pain livré. Après une année, il intente procès à son boulanger pour production frauduleuse, et gagne le procès : le poids moyen du pain livré est 980g., avec un écart-type de 20g...

Le calcul permet alors de montrer qu’on peut être presque sûr que le boulanger est un escroc et que ses pains ne font pas 1 kg en moyenne, comme il le prétend. En fait on peut même estimer la probabilité que le boulanger ne soit pas un escroc à 1022 : quasiment impossible ! L’histoire est inventée car on ne sait pas si un tribunal prendrait en compte ce genre de considérations !

L’année suivante, le boulanger ne lui livre que des pains pesant plus d’un kilogramme. Le mathématicien intente procès pour production frauduleuse et gagne encore : l’enregistrement montre une distribution des poids des pains livrés suivant la queue à partir de 1000 de la gaussienne précédente, centrée en 980 et d’écart-type 20 (la zone bleue sur la figure suivante). Donc le boulanger n’a pas modifié sa production. Simplement, il pesait le pain avant de le livrer au mathématicien procédurier et si ce choix pesait moins d’un kilogramme, il en choisissait un autre jusqu’à ce qu’il trouve un pain auquel le mathématicien n’aurait rien à reprocher. Malins ces mathématiciens ;-)

JPEG - 178.2 ko

vendredi 21 août 2020

CNRS - Covid-19 Modélisation d'une épidémie

Liens:

  • https://images.math.cnrs.fr/Modelisation-d-une-epidemie-partie-1.html
    La simulation suivante illustre la propagation du Coronavirus Covid-19 et est interactive, elle n’est pas basée directement sur le modèle SIR mais sur un modèle plus compliqué (qui prend en compte plus de paramètres). Cette simulation a en effet des points communs avec le modèle SIR (3 sous-populations : saines, infectées, retirées) mais également des différences majeures : elle est discrète (chaque point représente une personne) et aléatoire (afin de modéliser les déplacements des personnes et leurs potentiels contacts). Elle permet ainsi de voir plus précisément l’impact de la modification des paramètres sur l’évolution du virus
  • https://images.math.cnrs.fr/Modelisation-d-une-epidemie-partie-2.html
    C’est le cas de la simulation interactive suivante qui est basée sur un modèle plus complexe que le seul modèle SIR : elle reprend les trois sous-populations (S, I et R) ainsi que la natalité et la mortalité du modèle SEIR, mais également les déplacements et les contacts des individus modélisés de manière aléatoire. Le confinement y est de plus pris en compte.

Voir en bas des articles pour jouer avec les simulations