<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Le_code_complet_du_projet</id>
	<title>Le code complet du projet - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Le_code_complet_du_projet"/>
	<link rel="alternate" type="text/html" href="http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Le_code_complet_du_projet&amp;action=history"/>
	<updated>2026-05-21T07:43:53Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>http://os-vps418.infomaniak.ch:1250/mediawiki/index.php?title=Le_code_complet_du_projet&amp;diff=12946&amp;oldid=prev</id>
		<title>Emilien Boitouzet : Page créée avec « &lt;pre&gt; ## BOITOUZET Emilien ## CMI-INFO ## La ruine d&#039;un joueur   import random import matplotlib.pyplot as plt import numpy as np    # simulation d&#039;une partie de jeu équi... »</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&amp;oldid=prev"/>
		<updated>2021-05-04T11:37:09Z</updated>

		<summary type="html">&lt;p&gt;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;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&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&amp;#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&amp;#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&amp;#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&amp;#039;évolution de l&amp;#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&amp;#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&amp;#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&amp;#039;axe des abscisses&lt;br /&gt;
    plt.ylabel(&amp;quot;richesse du joueur&amp;quot;)        #titre de l&amp;#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&amp;#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&amp;#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&amp;#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&amp;#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>
</feed>