<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://os-vps418.infomaniak.ch:1250/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emilien+Boitouzet</id>
	<title>Wiki du LAMA (UMR 5127) - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="http://os-vps418.infomaniak.ch:1250/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Emilien+Boitouzet"/>
	<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php/Sp%C3%A9cial:Contributions/Emilien_Boitouzet"/>
	<updated>2026-05-21T07:13:21Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13324</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13324"/>
		<updated>2021-05-13T16:13:00Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivants on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirées &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théoriques. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faits à partir de petites valeurs.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiales.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Pour conclure, nous nous apercevons que la probabilité de perdre est plus importante que la probabilité de gagner. Nous constatons, en exécutant le code avec des valeurs différentes que la probabilité de gagner est plus importante ; à condition d&#039;arriver avec une somme de départ conséquente sans espoir de gros gains. Nous pouvons aussi nous apercevoir que le temps de jeu pour gagner est assez important, il y a donc abandon du jeu à un moment par le joueur. Ainsi, pour le casino les recettes demeurent supérieures aux gains des joueurs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13323</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13323"/>
		<updated>2021-05-13T16:09:51Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* CONCLUSION */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivants on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirées &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théoriques. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faits à partir de petites valeurs.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiales.&lt;br /&gt;
&lt;br /&gt;
==Conclusion==&lt;br /&gt;
Pour conclure, nous nous apercevons que la probabilité de perdre est plus importante que la probabilité de gagner. Nous constatons, en exécutant le code avec des valeurs différentes que la probabilité de gagner est plus importante ; à condition d&#039;arriver avec une somme de départ conséquente sans espoir de gros gains.   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13322</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13322"/>
		<updated>2021-05-13T16:03:59Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivants on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirées &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théoriques. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faits à partir de petites valeurs.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiales.&lt;br /&gt;
&lt;br /&gt;
==CONCLUSION==&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13321</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13321"/>
		<updated>2021-05-13T16:02:58Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivants on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirées &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théoriques. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faits à partir de petites valeurs.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiales.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13320</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13320"/>
		<updated>2021-05-13T16:02:24Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivants on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirées &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théoriques. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faits à partir de petites valeurs.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13319</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13319"/>
		<updated>2021-05-13T16:01:48Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivants on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirées &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13318</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13318"/>
		<updated>2021-05-13T16:00:47Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Pour une partie de roulette  p \ne 1/2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivants on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13317</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=13317"/>
		<updated>2021-05-13T15:59:47Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Probabilité de perdre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mises et les diviser par le nombre de mises.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12999</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12999"/>
		<updated>2021-05-05T07:32:42Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png|left]][[Fichier:pGagne.png|right]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12997</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12997"/>
		<updated>2021-05-05T07:32:09Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png|center]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12996</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12996"/>
		<updated>2021-05-05T07:30:59Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Exemple.jpg]]===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12995</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12995"/>
		<updated>2021-05-05T07:29:30Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12994</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12994"/>
		<updated>2021-05-05T07:29:18Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]]&lt;br /&gt;
&lt;br /&gt;
[[Fichier:pRuine.png],center]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12973</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12973"/>
		<updated>2021-05-04T12:02:14Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calcul du temps moyen de jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]][[Fichier:pRuine.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12972</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12972"/>
		<updated>2021-05-04T12:01:55Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Probabilité de perdre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre le [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]][[Fichier:pRuine.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12971</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12971"/>
		<updated>2021-05-04T12:01:18Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calcul du temps moyen de jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]][[Fichier:pRuine.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12970</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12970"/>
		<updated>2021-05-04T12:01:10Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Probabilité de perdre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]][[Fichier:pRuine.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PRuine.png&amp;diff=12969</id>
		<title>Fichier:PRuine.png</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PRuine.png&amp;diff=12969"/>
		<updated>2021-05-04T12:00:11Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : Emilien Boitouzet a téléversé une nouvelle version de Fichier:PRuine.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PRuine.png&amp;diff=12968</id>
		<title>Fichier:PRuine.png</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PRuine.png&amp;diff=12968"/>
		<updated>2021-05-04T11:59:43Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PGagne.png&amp;diff=12967</id>
		<title>Fichier:PGagne.png</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PGagne.png&amp;diff=12967"/>
		<updated>2021-05-04T11:59:12Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : Emilien Boitouzet a téléversé une nouvelle version de Fichier:PGagne.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PGagne.png&amp;diff=12966</id>
		<title>Fichier:PGagne.png</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:PGagne.png&amp;diff=12966"/>
		<updated>2021-05-04T11:58:36Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12965</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12965"/>
		<updated>2021-05-04T11:58:26Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]][[Fichier:pGagne.png]][[Fichier:pRuine.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12964</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12964"/>
		<updated>2021-05-04T11:57:46Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques d&#039;un nombre de soirée &amp;lt;math&amp;gt;nb&amp;lt;/math&amp;gt;. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. &lt;br /&gt;
&lt;br /&gt;
Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
  - &amp;lt;math&amp;gt;a = 20&amp;lt;/math&amp;gt; &lt;br /&gt;
  - &amp;lt;math&amp;gt;b = 10&amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;p = 18/37 &amp;lt;/math&amp;gt;&lt;br /&gt;
  - &amp;lt;math&amp;gt;nb = 1000&amp;lt;/math&amp;gt; (le nombre de soirée simulé)&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12954</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12954"/>
		<updated>2021-05-04T11:51:10Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:estimation du temps.png]]&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:Estimation_du_temps.png&amp;diff=12952</id>
		<title>Fichier:Estimation du temps.png</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Fichier:Estimation_du_temps.png&amp;diff=12952"/>
		<updated>2021-05-04T11:49:41Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12950</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12950"/>
		<updated>2021-05-04T11:48:18Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Graphes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
Nous avons aussi étudié l&#039;évolution des valeurs de la simulation en fonction des valeurs théoriques. On peut voir sur les graphiques ci-dessous que les valeurs des simulations tendent vers les valeurs théorique. Pour que la simulation ne prenne pas trop de temps les graphes sont faite à partir de petite valeur.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
[[Fichier:estimation du temps.jpg]]&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12947</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12947"/>
		<updated>2021-05-04T11:40:07Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Estimations numériques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Graphes===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Le_code_complet_du_projet&amp;diff=12946</id>
		<title>Le code complet du projet</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Le_code_complet_du_projet&amp;diff=12946"/>
		<updated>2021-05-04T11:37:09Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : Page créée avec « &amp;lt;pre&amp;gt; ## BOITOUZET Emilien ## CMI-INFO ## La ruine d&amp;#039;un joueur   import random import matplotlib.pyplot as plt import numpy as np    # simulation d&amp;#039;une partie de jeu équi... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
## BOITOUZET Emilien&lt;br /&gt;
## CMI-INFO&lt;br /&gt;
## La ruine d&#039;un joueur&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import random&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# simulation d&#039;une partie de jeu équilibré &lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def ruineG(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&lt;br /&gt;
# Partie théorique&lt;br /&gt;
&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&lt;br /&gt;
def graphe_pRuine (a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui trace le graphe de la probabilité d&#039;être ruiné et&lt;br /&gt;
    la droite de la valeur théorique&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    pas = 1&lt;br /&gt;
    res2 = []&lt;br /&gt;
    i = 1&lt;br /&gt;
    while i &amp;lt; nb+1 :&lt;br /&gt;
        res2 = res2 + [est_ruine(a,b,p,i)]&lt;br /&gt;
        i = i + pas&lt;br /&gt;
        &lt;br /&gt;
    plt.clf()&lt;br /&gt;
    x = [i for i in range(1,nb+1,pas)]&lt;br /&gt;
    y1 = res2&lt;br /&gt;
    y2 = [theorie(a,b,p)[0]]*len(x)&lt;br /&gt;
    plt.plot(x,y1)&lt;br /&gt;
    plt.plot(x,y2)&lt;br /&gt;
    plt.title(&amp;quot;Évolution de la probabilité d&#039;être ruiné&amp;quot;)&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de la partie&amp;quot;)                &lt;br /&gt;
    plt.ylabel(&amp;quot;probabilité d&#039;être ruiné&amp;quot;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
&lt;br /&gt;
def graphe_pGagne (a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui trace le graphe de la probabilité de gagné et&lt;br /&gt;
    la droite de la valeur théorique&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    pas = 1&lt;br /&gt;
    res = []&lt;br /&gt;
    i = 1&lt;br /&gt;
    while i &amp;lt; nb+1 :&lt;br /&gt;
        res = res + [1-(est_ruine(a,b,p,i))]&lt;br /&gt;
        i = i + pas&lt;br /&gt;
&lt;br /&gt;
    plt.clf()&lt;br /&gt;
    x = [i for i in range(1,nb+1,pas)]&lt;br /&gt;
    y1 = res&lt;br /&gt;
    y2 = [theorie(a,b,p)[1]]*len(x)&lt;br /&gt;
    plt.plot(x,y1)&lt;br /&gt;
    plt.plot(x,y2)&lt;br /&gt;
    plt.title(&amp;quot;Évolution de la probabilité de gagner&amp;quot;)&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de la partie&amp;quot;)                &lt;br /&gt;
    plt.ylabel(&amp;quot;probabilité de gagner&amp;quot;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
    &lt;br /&gt;
def graphe_eT(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace la courbe représentative du temps de jeux et le&lt;br /&gt;
    temps théorique du temps de jeux&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    pas = 1&lt;br /&gt;
    res = []&lt;br /&gt;
    i = 1&lt;br /&gt;
    &lt;br /&gt;
    while i &amp;lt; nb+1 :&lt;br /&gt;
        res = res + [temps_moy(a,b,p,i)]&lt;br /&gt;
        i = i + pas&lt;br /&gt;
&lt;br /&gt;
    plt.clf()&lt;br /&gt;
    x = [i for i in range(1,nb+1,pas)]&lt;br /&gt;
    y1 = res&lt;br /&gt;
    y2 = [theorie(a,b,p)[2]]*len(x)&lt;br /&gt;
    plt.plot(x,y1)&lt;br /&gt;
    plt.plot(x,y2)&lt;br /&gt;
    plt.title(&amp;quot;Évolution du temps de jeu&amp;quot;)&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de la partie&amp;quot;)                &lt;br /&gt;
    plt.ylabel(&amp;quot;Temps de jeu&amp;quot;)&lt;br /&gt;
    plt.show()&lt;br /&gt;
   &lt;br /&gt;
def graphe (a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace tous les graphes ci-dessus&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    graphe_pRuine(a,b,p,nb)&lt;br /&gt;
    graphe_pGagne(a,b,p,nb)&lt;br /&gt;
    graphe_eT(a,b,p,nb)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12945</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12945"/>
		<updated>2021-05-04T11:36:31Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12944</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12944"/>
		<updated>2021-05-04T11:36:17Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Le code complet du projet]].&lt;br /&gt;
Le code compote les fonctions pour créer les graphes en fonction de vos valeurs initiale&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12943</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12943"/>
		<updated>2021-05-04T11:33:56Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calculs de probabilité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilités==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12941</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12941"/>
		<updated>2021-05-04T11:33:09Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Probabilité de perdre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12940</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12940"/>
		<updated>2021-05-04T11:33:01Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calcul du temps moyen de jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter cette fonction il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12938</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12938"/>
		<updated>2021-05-04T11:32:35Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Probabilité de perdre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def est_ruine(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui compte le nombre de fois ou le joueur est ruiné&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
            en sortie : une probabilité, le nombre de fois ou le joueur repart ruiné&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    i = 0&lt;br /&gt;
    res = 0&lt;br /&gt;
    while nb &amp;gt; i :&lt;br /&gt;
        &lt;br /&gt;
        if ruine(a,b,p)[1] != 1:&lt;br /&gt;
            res = res + 1&lt;br /&gt;
        i = i + 1&lt;br /&gt;
    return res / nb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter ce code il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Code_g%C3%A9n%C3%A9ral&amp;diff=12937</id>
		<title>Code général</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Code_g%C3%A9n%C3%A9ral&amp;diff=12937"/>
		<updated>2021-05-04T11:29:51Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : Page créée avec « &amp;lt;pre&amp;gt; def ruine(a,b,p):     &amp;quot;&amp;quot;&amp;quot;simulation d&amp;#039;une soirée au casino (jeu de la roulette)              en entrée : a la richesse initiale du joueur                         b... »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12936</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12936"/>
		<updated>2021-05-04T11:29:00Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calcul du temps moyen de jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter ce code il faut aussi prendre la fonction [[Code général]].&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12935</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12935"/>
		<updated>2021-05-04T11:27:19Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calcul du temps moyen de jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
Le calcul du temps moyen se fait comme le calcul de la probabilité de perdre. Nous simulons une soirée avec plusieurs mises, nous regardons le temps de jeu, et nous divisons par le nombre de mises. &lt;br /&gt;
&lt;br /&gt;
Le code suivant permet de calculer le temps moyen de jeu &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION&#039;&#039;&#039;&lt;br /&gt;
Pour exécuter ce code il faut aussi prendre la fonction ruine.&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12934</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12934"/>
		<updated>2021-05-04T11:19:27Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calcul du temps moyen de jeu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def temps_moy(a,b,p,nb):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui calcul le temps moyen d&#039;une soirée au casino&lt;br /&gt;
&lt;br /&gt;
        en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
                        nb le nombre de soirée&lt;br /&gt;
        en sortie : un entier, le temps moyen passé au casino&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    d = 0&lt;br /&gt;
    c = 0 &lt;br /&gt;
    for i in range (nb):&lt;br /&gt;
        c = ruine(a,b,p)[2]&lt;br /&gt;
        &lt;br /&gt;
        d = d + c&lt;br /&gt;
       &lt;br /&gt;
    res = d / nb&lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12932</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12932"/>
		<updated>2021-05-04T11:18:13Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théoriques : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12931</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12931"/>
		<updated>2021-05-04T11:17:59Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théorique : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. La première valeur correspond à la valeur théorique de la probabilité de perdre, la deuxième valeur est la valeur théorique de la probabilité de gagner et enfin la dernière valeur est la valeur théorique de l&#039;estimation du temps. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12930</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12930"/>
		<updated>2021-05-04T11:15:49Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théorique : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cette fonction renvoie un tuple. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12926</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12926"/>
		<updated>2021-05-04T11:13:58Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
Le code suivant permet de calculer les différentes valeurs théorique : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
def theorie(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;Fonction qui nous donne les résultats théoriques&lt;br /&gt;
&lt;br /&gt;
            en entrée : a, la richesse initiale du joueur&lt;br /&gt;
                        b, la somme que le joueur veut atteindre&lt;br /&gt;
                        p, la probabilité de gagner&lt;br /&gt;
            en sortie : des flottants &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    if p == 1/2 :               #Probabilité de gagner&lt;br /&gt;
        pRuine = b /(a + b)     #Proba théorique de perdre&lt;br /&gt;
        pGagne = a / (a + b)    #Proba théorique de gagner&lt;br /&gt;
        eT = a*b                #Estimation théorique du temps de jeu&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    else :&lt;br /&gt;
        r = (1 - p) / p&lt;br /&gt;
        pRuine = (r**(a+b)-r**a)/(r**(a+b)-1)&lt;br /&gt;
        pGagne = (r**a-1)/(r**(a+b)-1)&lt;br /&gt;
        eT = 1/(2*p-1)*((((a+b)*(1-r**a))/(1-r**(a+b)))-a)&lt;br /&gt;
        res = (pRuine, pGagne, eT)&lt;br /&gt;
    &lt;br /&gt;
    return res&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12918</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12918"/>
		<updated>2021-05-04T11:11:28Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Estimations numériques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Code===&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12912</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12912"/>
		<updated>2021-05-04T11:02:36Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Calculs de probabilité */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de perdre pour tous les jeux.&lt;br /&gt;
&lt;br /&gt;
Pour avoir la probabilité de gagner il suffit de soustraire la probabilité de perdre à 1.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
Pour notre calcul de la probabilité de perdre, nous devons simuler plusieurs mise et le divisé par le nombre de mise.&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12911</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12911"/>
		<updated>2021-05-04T10:57:47Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code général */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner et de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de gagner et de perdre pour tous les jeux.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de gagner===&lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12902</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12902"/>
		<updated>2021-05-02T18:26:02Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Estimations numériques */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;mathplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner et de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de gagner et de perdre pour tous les jeux.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de gagner===&lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique varie en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12901</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12901"/>
		<updated>2021-05-02T18:24:56Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Code général */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;mathplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner et de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de gagner et de perdre pour tous les jeux.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de gagner===&lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique vari en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12900</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12900"/>
		<updated>2021-05-02T18:23:58Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Une partie de roulette */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifiées. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est dû au fait qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnantes. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultat. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur à gagner (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mise pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner et de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de gagner et de perdre pour tous les jeux.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de gagner===&lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique vari en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12899</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12899"/>
		<updated>2021-05-02T18:22:51Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Une partie de &amp;quot;Pile ou Face&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et de regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibrées la probabilité de tomber sur pile est égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les mêmes règles que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultats. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur a gagné (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mises pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifié. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est du au faite qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnante. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultat. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur à gagner (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mise pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultat. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur à gagner (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mise pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner et de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de gagner et de perdre pour tous les jeux.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de gagner===&lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique vari en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12898</id>
		<title>Modélisation de la ruine du joueur 2020-2021</title>
		<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Mod%C3%A9lisation_de_la_ruine_du_joueur_2020-2021&amp;diff=12898"/>
		<updated>2021-05-02T18:21:04Z</updated>

		<summary type="html">&lt;p&gt;Emilien Boitouzet : /* Une soirée au casino (simulation) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dans le cadre du module de VISI201, nous allons réaliser la modélisation de la ruine d&#039;un joueur. C&#039;est à dire, à l&#039;aide d&#039;un programme, de comprendre comment les casinos arrivent à gagner de l&#039;argent en proposant le jeu de la roulette. La première partie explique qu&#039;est ce que la ruine d&#039;un joueur. Puis nous vous proposons la simulation d&#039;une soirée au casino. Et enfin une partie mathématique avec des calculs de probabilités, du temps moyen de jeu et des estimations numériques.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qu&#039;est ce que la ruine d&#039;un joueur ?==&lt;br /&gt;
&lt;br /&gt;
Un joueur de roulette arrive au casino avec une somme d&#039;argent finie, et il souhaite gagner une certaine somme d&#039;argent. Le joueur repart soit quand il est ruiné soit quand il a gagné le montant qu&#039;il voulait. Le temps est compté et il n&#039;y a aucune stratégie pour gagner c&#039;est un jeu de hasard. Si le joueur n&#039;a pas de somme a atteindre et qu&#039;il a un temps illimité il finira ruiné. &lt;br /&gt;
&lt;br /&gt;
===Règles de la roulette===&lt;br /&gt;
&lt;br /&gt;
Pour notre modélisation de la ruine d&#039;un joueur, nous avons simplifié les règles de la roulette. &lt;br /&gt;
&lt;br /&gt;
La roulette est constituée de 37 numéros : le 0 est vert, 18 pairs rouges et 18 impairs noirs. &lt;br /&gt;
&lt;br /&gt;
Le joueur arrive avec une richesse initiale notée &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt;, il souhaite gagner &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; euro. A chaque tour le joueur mise un euro sur les nombres pairs, si il tombe sur un nombre pair il gagne 1€ sinon il perd 1€. Si il tombe sur zéro il perd aussi 1€.&lt;br /&gt;
&lt;br /&gt;
==Une soirée au casino (simulation)==&lt;br /&gt;
&lt;br /&gt;
Pour la simulation nous posons trois variables :&lt;br /&gt;
  - &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse du joueur à l&#039;entrée du casino&lt;br /&gt;
  - &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; le gain souhaité par le joueur&lt;br /&gt;
  - &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; la probabilité de gagner&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Une partie de &amp;quot;Pile ou Face&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
La partie de &amp;quot;Pile ou face&amp;quot; a pour but de lancer une pièce et re regarder sur quelle face elle tombe. Les pièces de monnaie étant équilibré la probabilité de tomber sur pile et égal à la probabilité de tomber sur face, c&#039;est à dire que la probabilité et de &amp;lt;math&amp;gt;\frac{1}{2}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Pour la simulation on prend les même règle que pour la roulette : le joueur mise sur une face si il a bon il gagne 1€, sinon il les perd.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def pile_ou_face(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 0.5: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultat. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur à gagner (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mise pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Une partie de roulette===&lt;br /&gt;
&lt;br /&gt;
Pour la simulation d&#039;une partie de roulette, nous allons prendre les règles simplifié. &lt;br /&gt;
&lt;br /&gt;
Lors que le joueur mise sur pair il a une probabilité à chaque mise &amp;lt;math&amp;gt;p=\frac{18}{37}&amp;lt;/math&amp;gt;. Cette probabilité est du au faite qu&#039;il y a 37 cases au total et qu&#039;il y a 18 cases gagnante. &lt;br /&gt;
&lt;br /&gt;
Le code reste le même sauf qu&#039;il faut changer la probabilité de gagner à chaque mise.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def casino(a,b):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= 18/37: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; Pour exécuter ce code python il faut importer la librairie random&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultat. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur à gagner (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mise pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
===Code général===&lt;br /&gt;
&lt;br /&gt;
Nous vous proposons un code général qui permet de calculer tout type de jeux qui se font sur plusieurs mises. La deuxième fonction permet d&#039;avoir le même résultat mais trace en plus un graphe de l&#039;évolution de la richesse du joueur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
def ruine(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;simulation d&#039;une soirée au casino (jeu de la roulette)&lt;br /&gt;
&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : g -&amp;gt; 0 si ruiné sinon 1&lt;br /&gt;
                        s le tableau de l&#039;évolution de l&#039;argent du joueur&lt;br /&gt;
                        t le temps de la partie &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    c = a   &lt;br /&gt;
    s = [a]&lt;br /&gt;
    while c != 0 and c &amp;lt; a + b :&lt;br /&gt;
        res = random.uniform(0,1) # renvoie un nombre entre 0 et 1&lt;br /&gt;
        if res &amp;lt;= p: #Joueur à gagner cette mise&lt;br /&gt;
            c = c + 1&lt;br /&gt;
        else :       #Joueur à perdu cette mise&lt;br /&gt;
            c = c - 1&lt;br /&gt;
        s = s + [c]&lt;br /&gt;
    if c == 0 :         # Joueur ruiné&lt;br /&gt;
        g = 0&lt;br /&gt;
    elif c == a + b :   # Joueur a gagné&lt;br /&gt;
        g =  1&lt;br /&gt;
    t = len(s)          #Temps de jeu&lt;br /&gt;
    return s, g, t&lt;br /&gt;
&lt;br /&gt;
def graphe(a,b,p):&lt;br /&gt;
    &amp;quot;&amp;quot;&amp;quot;fonction qui trace le graphe de l&#039;évolution de la richesse du joueur&lt;br /&gt;
            en entrée : a la richesse initiale du joueur&lt;br /&gt;
                        b la somme que le joueur veut atteindre&lt;br /&gt;
                        p la probabilité de gagner (mise pair)&lt;br /&gt;
            en sortie : le graphe &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    casino = ruine(a,b,p)&lt;br /&gt;
    print(casino)&lt;br /&gt;
    plt.clf()                               #pas de graphe antérieur sur la figure&lt;br /&gt;
    x = [i for i in range(len(casino[0]))]  #coordonées en x&lt;br /&gt;
    y = casino[0]                           #coordonnées en y&lt;br /&gt;
&lt;br /&gt;
    plt.plot(x,y)                           #dessin du graphe&lt;br /&gt;
    plt.title(&amp;quot;simulation d&#039;une soirée au casino&amp;quot;)#titre du graphe&lt;br /&gt;
    plt.xlabel(&amp;quot;n° de mise&amp;quot;)                #titre de l&#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&#039;axe des ordonnées&lt;br /&gt;
&lt;br /&gt;
    plt.show()                              #afficher le graphe&lt;br /&gt;
    plt.close&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ATTENTION :&#039;&#039;&#039; &lt;br /&gt;
* Pour exécuter ce code python il faut importer les librairies &#039;&#039;random&#039;&#039; et &#039;&#039;matplotlib.pyplot&#039;&#039;.&lt;br /&gt;
* Pour exécuter la procédure &#039;&#039;graphe&#039;&#039; il faut copier les deux fonctions dans un interpréteur python.&lt;br /&gt;
&lt;br /&gt;
Cette simulation renvoie trois résultat. Le premier résultat correspond à l&#039;évolution de la richesse du joueur, le deuxième résultat permet de savoir facilement si le joueur à gagner (soit &amp;lt;math&amp;gt;g=1&amp;lt;/math&amp;gt;). Et le dernier résultat correspond au temps de jeu (c&#039;est à dire le nombre de mise pour gagner ou être ruiné).&lt;br /&gt;
&lt;br /&gt;
==Calculs de probabilité==&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner et de perdre, nous allons nous intéresser seulement à celle d&#039;une soirée d&#039;un casino. Le code est adapté pour calculer la probabilité de gagner et de perdre pour tous les jeux.&lt;br /&gt;
 &lt;br /&gt;
===Probabilité de gagner===&lt;br /&gt;
===Probabilité de perdre===&lt;br /&gt;
&lt;br /&gt;
==Calcul du temps moyen de jeu==&lt;br /&gt;
&lt;br /&gt;
==Estimations numériques==&lt;br /&gt;
&lt;br /&gt;
L&#039;estimation numérique vari en fonction de la probabilité.&lt;br /&gt;
&lt;br /&gt;
Nous avons &amp;lt;math&amp;gt;a&amp;lt;/math&amp;gt; la richesse initiale, &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; la somme à gagner&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de &amp;quot;Pile ou Face&amp;quot; &amp;lt;math&amp;gt;p = 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{b}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{a}{a+b}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=ab&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Pour une partie de roulette &amp;lt;math&amp;gt; p \ne 1/2&amp;lt;/math&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Pour faciliter les calculs suivant on note tout d&#039;abord que &amp;lt;math&amp;gt;r=\frac{(1-p)}{p}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour calculer la valeur théorique de la probabilité de perdre : &lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=0)=\frac{r^{a+b}-r^a}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de la probabilité de gagner :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{P}(S_T=a+b)=\frac{r^a-1}{r^{a+b}-1}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour le calcul de l&#039;estimation du temps de jeu :&lt;br /&gt;
&amp;lt;math&amp;gt; \mathbb{E}[T]=\frac{1}{2p-1}\left(\frac{(a+b)(1-r^a)}{1-r^{a+b}}-a\right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;CONCLUSION&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Ce projet à été réalisé par BOITOUZET Emilien (Tuteur : LABART Céline)&lt;/div&gt;</summary>
		<author><name>Emilien Boitouzet</name></author>
	</entry>
</feed>