{"id":5977,"date":"2021-04-09T11:50:11","date_gmt":"2021-04-09T09:50:11","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=5977"},"modified":"2022-01-25T16:45:48","modified_gmt":"2022-01-25T15:45:48","slug":"probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/","title":{"rendered":"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires"},"content":{"rendered":"\n<p>J&#8217;ai pu constat\u00e9 ces derniers temps que les outils pour les probabilit\u00e9s en Python au lyc\u00e9e (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Au menu sur cette page...<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Probabilites_et_Python_au_lycee_loi_binomiale_et_variables_aleatoires_%E2%80%93_Introduction\" >Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires &#8211; Introduction<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Probabilites_et_Python_au_lycee_loi_binomiale\" >Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Probabilites_et_Python_au_lycee_loi_binomiale_le_constructeur\" >Probabilit\u00e9s et Python au lyc\u00e9e (loi binomiale) : le constructeur<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Probabilites_et_Python_au_lycee_loi_binomiale_les_methodes\" >Probabilit\u00e9s et Python au lyc\u00e9e (loi binomiale) : les m\u00e9thodes<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_lesperance\" >Calcul de l&#8217;esp\u00e9rance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_la_variance\" >Calcul de la variance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_lecart-type\" >Calcul de l&#8217;\u00e9cart-type<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_PXk\" >Calcul de \\(P(X=k)\\)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_PXleqslant_k\" >Calcul de \\(P(X\\leqslant k)\\)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_h_telle_que_PXleqslant_h_x\" >Calcul de h telle que \\(P(X\\leqslant h) = x\\)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Probabilites_et_Python_simulation_dune_loi_binomiale\" >Probabilit\u00e9s et Python: simulation d&#8217;une loi binomiale<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Probabilites_et_Python_distribution_de_la_loi_binomiale\" >Probabilit\u00e9s et Python: distribution de la loi binomiale<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Intervalle_de_fluctuation\" >Intervalle de fluctuation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Probabilites_et_Python_variables_aleatoires\" >Probabilit\u00e9s et Python: variables al\u00e9atoires<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Le_constructeur\" >Le constructeur<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Les_methodes\" >Les m\u00e9thodes<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_lesperance-2\" >Calcul de l&#8217;esp\u00e9rance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_la_variance-2\" >Calcul de la variance<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_lecart-type-2\" >Calcul de l&#8217;\u00e9cart-type<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Calcul_de_la_mediane\" >Calcul de la m\u00e9diane<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Cas_dune_serie_statistique\" >Cas d&#8217;une s\u00e9rie statistique<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Le_module\" >Le module<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Telechargement\" >T\u00e9l\u00e9chargement<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Installation_et_utilisation\" >Installation et utilisation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#Aide\" >Aide<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Probabilites_et_Python_au_lycee_loi_binomiale_et_variables_aleatoires_%E2%80%93_Introduction\"><\/span>Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires &#8211; Introduction<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Je suis en train de r\u00e9diger un livre consacr\u00e9 \u00e0 l&#8217;utilisation de Python au lyc\u00e9e en enseignement des math\u00e9matiques, et je suis arriv\u00e9 \u00e0 la partie &#8220;probabilit\u00e9s&#8221;. Simuler une loi binomiale n&#8217;est pas une chose tr\u00e8s naturelle, bien que facile quand on sait comment s&#8217;y prendre. De m\u00eame, je n&#8217;ai pas trouv\u00e9 de modules Python qui offrent la possibilit\u00e9 d&#8217;obtenir simplement ce que l&#8217;on attend des \u00e9l\u00e8ves: \\(P(X=k)\\), \\(P(X \\leqslant k)\\), &#8230; Ce n&#8217;est pourtant pas bien compliqu\u00e9 \u00e0 impl\u00e9menter&#8230; Surtout pour le peu de besoins que nous avons au lyc\u00e9e.<\/p>\n\n\n\n<p>J&#8217;ai donc d\u00e9cid\u00e9 de cr\u00e9er mon module <em>probastat.py<\/em> que je vais vous exposer ici:<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Probabilites_et_Python_au_lycee_loi_binomiale\"><\/span>Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>La premi\u00e8re chose qu&#8217;il faut savoir, c&#8217;est que j&#8217;aime bien la <a href=\"https:\/\/www.mathweb.fr\/euclide\/2019\/09\/06\/les-classes-en-python\/\" target=\"_blank\" rel=\"noreferrer noopener\">POO<\/a>. C&#8217;est pour cela que j&#8217;ai d\u00e9cid\u00e9 de consid\u00e9rer une variable al\u00e9atoire X (qui suit la loi binomiale \\(\\mathcal{B}(n;p)\\)) comme un <em>objet<\/em>, donc d\u00e9finie par une <em>classe<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Probabilites_et_Python_au_lycee_loi_binomiale_le_constructeur\"><\/span>Probabilit\u00e9s et Python au lyc\u00e9e (loi binomiale) : le constructeur<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class binom:\n    def __init__(self,n,p):\n        self.n = n\n        self.p = p\n        self.fact = [ 1 ]\n        for i in range(1,n+1):\n            self.fact.append( self.fact[i-1] * i )<\/pre>\n\n\n\n<p>Remarquez la pr\u00e9sence d&#8217;une liste un peu sp\u00e9ciale dans le constructeur: cette liste contient toutes les factorielles 0!, 1!, 2!, &#8230;, n! <\/p>\n\n\n\n<p>J&#8217;ai opt\u00e9 pour cette solution car faire appel \u00e0 une fonction <em>factorielle<\/em> rendait les m\u00e9thodes de la classes plus lentes pour des valeurs de <em>n<\/em> assez grandes (comme 50).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X = binom(50, 0.3)<\/code><\/pre>\n\n\n\n<p>Ceci d\u00e9clare une variable <em>X<\/em> suivant la loi binomiale de param\u00e8tres <em>n<\/em> = 50 et <em>p<\/em> = 0,3. <\/p>\n\n\n\n<p>Tous les exemples suivants seront bas\u00e9s sur cette variable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Probabilites_et_Python_au_lycee_loi_binomiale_les_methodes\"><\/span>Probabilit\u00e9s et Python au lyc\u00e9e (loi binomiale) : les m\u00e9thodes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_lesperance\"><\/span>Calcul de l&#8217;esp\u00e9rance<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def moyenne(self , r = None):\n        if r != None:\n            return round(self.n * self.p , r)\n        else:\n            return self.n * self.p<\/pre>\n\n\n\n<p>Rien de bien compliqu\u00e9, comme pr\u00e9vu: j&#8217;utilise la formule \\(E(X)=np\\). J&#8217;ai seulement mis un argument <em>r<\/em> au cas o\u00f9 l&#8217;on aimerait avoir un r\u00e9sultat arrondi \u00e0 <em>r<\/em> chiffres apr\u00e8s la virgule.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.esp()\n15.0<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_la_variance\"><\/span>Calcul de la variance<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>L\u00e0 encore, j&#8217;utilise la formule du cours : \\(V(X)=np(1-p)\\).<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def var(self , r = None):\n        if r != None:\n            return round(self.n * self.p * (1 - self.p) , r)\n        else:\n            return self.n * self.p * (1 - self.p)<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.var(2)\n10.5<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_lecart-type\"><\/span>Calcul de l&#8217;\u00e9cart-type<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Pas de suspens&#8230; J&#8217;utilise la formule \\(\\sigma(X)=\\sqrt{V(X)}\\).<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def ecart(self , r = None):\n        if r != None:\n            return round(self.var()**0.5 , r)\n        else:\n            return self.var()**0.5<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.ecart(2)\n3.24<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_PXk\"><\/span>Calcul de \\(P(X=k)\\)<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>J&#8217;utilise la formule de Bernoulli : \\( P(X=k)=\\binom{n}{k}p^k(1-p)^{n-k}\\).<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def proba(self,k,r = None):\n        if r == None:\n            return ( self.fact[self.n] \/ ( self.fact[k] * self.fact[self.n - k] ) ) * self.p**k * (1 - self.p)**(self.n-k)\n        else:\n            return round( ( self.fact[self.n] \/ ( self.fact[k] * self.fact[self.n - k] ) ) * self.p**k * (1 - self.p)**(self.n-k) , r)<\/pre>\n\n\n\n<p>C&#8217;est dans cette m\u00e9thode que j&#8217;utilise la liste des factorielles obtenue dans le constructeur.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.proba(15)\n0.1223468618354011<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_PXleqslant_k\"><\/span>Calcul de \\(P(X\\leqslant k)\\)<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def proba_cdf(self,k,r = None):\n        cdf = 0\n        for i in range(k+1):\n            cdf += self.proba(i)\n        \n        if r == None:\n            return cdf\n        else:\n            return round(cdf , r)<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.proba_cdf(15,3)\n0.569<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_h_telle_que_PXleqslant_h_x\"><\/span>Calcul de <em>h<\/em> telle que \\(P(X\\leqslant h) = x\\)<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def proba_icdf(self , pr):\n        h = 0\n        while self.proba_cdf(h) &lt; pr :\n            h += 1\n        return h<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.proba_icdf(0.95)\n20<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Probabilites_et_Python_simulation_dune_loi_binomiale\"><\/span>Probabilit\u00e9s et Python: simulation d&#8217;une loi binomiale<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def simul(self , k , c = None , e = None):\n        LX = [ i for i in range( self.n + 1) ]\n        LY = [ 0 ] * (self.n + 1)\n        for i in range(k):\n            p = self.proba_icdf( random() )\n            LY[p] += 1\n        \n        Y = [i\/k for i in LY]\n        \n        if c != None:\n            if e != None:\n                bar(LX,Y,color=c,edgecolor=e)\n            else:\n                bar(LX,Y,color=c)\n        else:\n            bar(LX,Y)\n        show()<\/pre>\n\n\n\n<p>Pour cette m\u00e9thode, il faut faire appel \u00e0 <em>matplotlib.pyplot<\/em>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.simul(1000, 'pink', 'red')<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg\" alt=\"probabilit\u00e9s et Python: simulation d'une loi binomiale\" class=\"wp-image-5978\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg 640w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale-600x450.jpg 600w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale-300x225.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption>Simulation d&#8217;une loi binomiale avec le module mathweb.stats<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Probabilites_et_Python_distribution_de_la_loi_binomiale\"><\/span>Probabilit\u00e9s et Python: distribution de la loi binomiale<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   def distrib(self , c = None , e = None):\n        LX = [ i for i in range( self.n + 1) ]\n        LY = [ self.proba(k) for k in range( self.n + 1) ]\n        \n        if c != None:\n            if e != None:\n                bar(LX,LY,color=c,edgecolor=e)\n            else:\n                bar(LX,LY,color=c)\n        else:\n            bar(LX,LY)\n        show()<\/pre>\n\n\n\n<p>Cette m\u00e9thode permet de construire le diagramme en barres de la distribution de la loi binomiale.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X = binom(50,0.11)\n&gt;&gt;&gt; X.distrib('cyan','blue')<\/code><\/pre>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/01\/probastat_distrib.jpg\" alt=\"\" class=\"wp-image-7241\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/01\/probastat_distrib.jpg 640w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/01\/probastat_distrib-600x450.jpg 600w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/01\/probastat_distrib-300x225.jpg 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption>Distribution d&#8217;une loi binomiale<\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Intervalle_de_fluctuation\"><\/span>Intervalle de fluctuation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def fluctuations(self , seuil = 0.95):\n        return interv(self.n, self.p, seuil)\n\nclass interv:\n    def __init__(self,n,p,seuil):\n        V = binom(n,p)\n        L = [ V.proba_cdf(k) if V.proba_cdf(k)&lt;1 else 1 for k in range(n+1) ]\n        self.tableau = '{:>5} | {:^20}\\n{:5} | {:>20}'.format('k' , 'P(X \u2264 k)' , 0 , V.proba_cdf(0))\n            \n        a = 0\n        \n        for k in range(1,n+1):\n            if L[k-1] &lt; (1-seuil)\/2 and L[k] >= (1-seuil)\/2:\n                a = k\n            elif L[k-1] &lt;= (1+seuil)\/2 and L[k] > (1+seuil)\/2:\n                b = k\n                \n            self.tableau += '\\n{:5} | {:>20}'.format( k , L[k] )\n            \n        self.intervalle = a, b<\/pre>\n\n\n\n<p>Cette m\u00e9thode permet d&#8217;avoir le tableau des valeurs de P(X \u2264 <em>k<\/em>), pour 0 \u2264 <em>k<\/em> \u2264 <em>n<\/em>, et d&#8217;avoir un intervalle de fluctuation au seuil de 95% (par d\u00e9faut) ou d&#8217;un autre seuil.<\/p>\n\n\n\n<p>J&#8217;ai ici opt\u00e9 pour cr\u00e9er un objet &#8220;interv&#8221; pour que l&#8217;appel aux diff\u00e9rentes variables soit plus intuitif.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; print( X.fluctuations().tableau )\n    k |       P(X \u2264 k)      \n    0 | 0.0029478157317550176\n    1 |  0.02116465452349951\n    2 |  0.07632687985355727\n    3 |  0.18541172994445798\n    4 |   0.3438298970708503\n    5 |   0.5239638129493998\n    6 |   0.6909418810390664\n    7 |    0.820664810341472\n    8 |   0.9068431046673678\n    9 |   0.9565489373497197\n   10 |    0.981736949192125\n   11 |   0.9930574039527565\n   12 |   0.9976046652751451\n   13 |   0.9992474960726891\n   14 |   0.9997841189736526\n   15 |   0.9999432970027025\n   16 |   0.9999863331973543\n   17 |   0.9999969713578301\n   18 |   0.9999993818773386\n   19 |   0.9999998836531322\n   20 |   0.9999999797798432\n   21 |   0.9999999967524568\n   22 |   0.9999999995176578\n   23 |   0.9999999999337214\n   24 |   0.9999999999915729\n   25 |    0.999999999999009\n   26 |   0.9999999999998928\n   27 |   0.9999999999999899\n   28 |   0.9999999999999998\n   29 |                    1\n   30 |                    1\n   31 |                    1\n   32 |                    1\n   33 |                    1\n   34 |                    1\n   35 |                    1\n   36 |                    1\n   37 |                    1\n   38 |                    1\n   39 |                    1\n   40 |                    1\n   41 |                    1\n   42 |                    1\n   43 |                    1\n   44 |                    1\n   45 |                    1\n   46 |                    1\n   47 |                    1\n   48 |                    1\n   49 |                    1\n   50 |                    1\n&gt;&gt;&gt; X.fluctuations().intervalle\n(2, 10)<\/code><\/pre>\n\n\n\n<p>Les plus averti\u00b7e\u00b7s d&#8217;entre vous auront remarqu\u00e9 la mani\u00e8re dont la liste L a \u00e9t\u00e9 construite dans la m\u00e9thode (par compr\u00e9hension, avec un test). En effet, le test est n\u00e9cessaire car sans le mettre, on obtient des probabilit\u00e9s sup\u00e9rieures \u00e0 1 \u00e0 la fin du tableau<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Probabilites_et_Python_variables_aleatoires\"><\/span>Probabilit\u00e9s et Python: variables al\u00e9atoires<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>La logique est la m\u00eame que pour les variables al\u00e9atoires qui suivent la loi binomiale. Je vais utiliser la POO.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Le_constructeur\"><\/span>Le constructeur<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class variable:\n    def __init__(self,X,N):\n        self.X = X\n        self.N = N<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; L = &#91;0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n&gt;&gt;&gt; P = &#91;0.1, 0.05, 0.2, 0.01, 0.3, 0.04, 0.07, 0.1, 0.03, 0.04, 0.06]\n&gt;&gt;&gt; X = variable(L,P)<\/code><\/pre>\n\n\n\n<p>D\u00e9finie une variable al\u00e9atoire prenant ses valeurs parmi les \u00e9l\u00e9ments de la liste L, sachant que la probabilit\u00e9 P(X=L[i]) vaut P[i]. Par exemple, ici, P(X = 3) = 0,01.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Les_methodes\"><\/span>Les m\u00e9thodes<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_lesperance-2\"><\/span>Calcul de l&#8217;esp\u00e9rance<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def esp(self,r = None):\n        if (len(self.X) != len(self.P)):\n            return False\n        \n        e = 0\n        for i in range( len(self.X) ):\n            e += self.X[i] * self.P[i]\n        \n        e \/= sum(self.P)\n        \n        if r != None:\n            return round(e , r)\n        else:\n            return e<\/pre>\n\n\n\n<p>J&#8217;effectue ici un premier test, histoire de savoir si les deux listes ont la m\u00eame dimension.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.esp()\n4.2<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>Notez la pr\u00e9sence de la division par l&#8217;effectif total.<\/p><p>J&#8217;ai souhait\u00e9 en effet conserver cette division pour pouvoir effectuer des calculs sur les s\u00e9ries statistiques.<\/p><cite>&#8221; e \/= sum(self.P) &#8220;<\/cite><\/blockquote><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_la_variance-2\"><\/span>Calcul de la variance<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Je m&#8217;appuie sur le fait que \\(V(X) = E[ (X-E(X))^2 ]\\).<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def var(self, r = None):\n        if (len(self.X) != len(self.P)) or sum(self.P) != 1.:\n            return False\n        \n        m = self.esp()\n        V = [ ( self.X[i] - m )**2 for i in range( len(self.X) ) ]\n        Y = variable( V , self.P )\n        return Y.esp(r)<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.var()\n7.680000000000001<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_lecart-type-2\"><\/span>Calcul de l&#8217;\u00e9cart-type<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def ecart(self , r = None):\n        if r != None:\n            return round(self.var()**0.5,r)\n        else:\n            return self.var()**0.5<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.ecart(3)\n2.771<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Calcul_de_la_mediane\"><\/span>Calcul de la m\u00e9diane<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    def mediane(self):\n        if (len(self.X) != len(self.P)):\n            return False\n        \n        total = 0\n        for i in range( len(self.X) ):\n            total += self.P[i]\n            if total > sum(self.P)\/2:\n                return self.X[i]\n            elif total == sum(self.P)\/2:\n                return ( self.X[i] + self.X[i+1] ) \/ 2<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; X.mediane()\n4<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Cas_dune_serie_statistique\"><\/span>Cas d&#8217;une s\u00e9rie statistique<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Le dernier objet a \u00e9t\u00e9 pens\u00e9 pour pouvoir effectuer les calculs similaires sur des s\u00e9ries statistiques.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; L = &#91;0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n&gt;&gt;&gt; N = &#91;12, 23, 12, 45, 10, 13, 21, 31, 25, 17, 19]\n&gt;&gt;&gt; X.esp() # donne la moyenne de la s\u00e9rie\n5.144736842105263\n&gt;&gt;&gt; X.ecart()\n3.019108503982276\n&gt;&gt;&gt; X.mediane()\n5<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Le_module\"><\/span>Le module<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Telechargement\"><\/span>T\u00e9l\u00e9chargement<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-file aligncenter\"><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/01\/probastat.py\">probastat<\/a><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2022\/01\/probastat.py\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installation_et_utilisation\"><\/span>Installation et utilisation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Vous pouvez installer ce fichier dans le r\u00e9pertoire courant de votre fichier principal Python, puis y faire appel:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># fichier principal Python\nfrom probastat import binom\n\nX = binom(50,0.11)\nX.distrib('cyan','blue')\nprint( X.fluctuations().tableau )\nprint( X.fluctuations().intervalle )<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Aide\"><\/span>Aide<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; help(binom)\nHelp on class binom in module probastat:\n\nclass binom(builtins.object)\n |  binom(n, p)\n |  \n |  Objet 'binom'\n |  D\u00e9claration : X = binom(n,p)\n |  M\u00e9thodes:\n |      * X.esp(&lt;r&gt;)\n |      * X.var(&lt;r&gt;)\n |      * X.ecart(&lt;r&gt;)\n |      * X.proba(k,&lt;r&gt;)        -&gt; retourne P(X = k)\n |      * X.proba_cdf(k,&lt;r&gt;)    -&gt; retourne P(X \u2264 k)\n |      * X.proba_icdf(p)       -&gt; retourne la plus grande valeur de h telle que P(X \u2264 h) \u2264 p\n |      * X.simul(k, &lt;couleur fond&gt;, &lt;couleur bord&gt;) -&gt; effectue k simulations et affiche le diagramme en barre\n |      * X.distrib( &lt;couleur fond&gt;, &lt;couleur bord&gt; ) -&gt; distribution de X\n |      * X.fluctuations( &lt;seuil = 0.95&gt;) -&gt; .tableau, .intervalle --&gt; 'a' et 'b' tels que P(a \u2264 X \u2264 b) &gt; seuil\n |      \n |      --&gt; 'r' : nombre de chiffres apr\u00e8s la virgule\n |  \n |  Methods defined here:\n |  \n |  __init__(self, n, p)\n |      Initialize self.  See help(type(self)) for accurate signature.\n |  \n |  distrib(self, c=None, e=None)\n |  \n |  ecart(self, r=None)\n |  \n |  esp(self, r=None)\n |  \n |  fluctuations(self, seuil=0.95)\n |  \n |  proba(self, k, r=None)\n |  \n |  proba_cdf(self, k, r=None)\n |  \n |  proba_icdf(self, pr)\n |  \n |  simul(self, k, c=None, e=None)\n |  \n |  var(self, r=None)\n |  \n |  ----------------------------------------------------------------------\n |  Data descriptors defined here:\n |  \n |  __dict__\n |      dictionary for instance variables (if defined)\n |  \n |  __weakref__\n |      list of weak references to the object (if defined)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&gt;&gt;&gt; help(variable)\nHelp on class variable in module probastat:\n\nclass variable(builtins.object)\n |  variable(X, P)\n |  \n |  Objet 'variable'\n |  D\u00e9claration : X = variable(liste valeurs , liste effectifs ou probabilit\u00e9s)\n |  M\u00e9thodes:\n |      * X.esp(&lt;r&gt;)\n |      * X.var(&lt;r&gt;)\n |      * X.ecart(&lt;r&gt;)\n |      * X.mediane(k,&lt;r&gt;)        -&gt; retourne P(X = k)\n |      \n |      --&gt; 'r' : nombre de chiffres apr\u00e8s la virgule\n |  \n |  Methods defined here:\n |  \n |  __init__(self, X, P)\n |      Initialize self.  See help(type(self)) for accurate signature.\n |  \n |  ecart(self, r=None)\n |  \n |  esp(self, r=None)\n |  \n |  mediane(self)\n |  \n |  var(self, r=None)\n |  \n |  ----------------------------------------------------------------------\n |  Data descriptors defined here:\n |  \n |  __dict__\n |      dictionary for instance variables (if defined)\n |  \n |  __weakref__\n |      list of weak references to the object (if defined)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>J&#8217;ai pu constat\u00e9 ces derniers temps que les outils pour les probabilit\u00e9s en Python au lyc\u00e9e (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser.<\/p>\n","protected":false},"author":1,"featured_media":5978,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21,4,6,5],"tags":[251,140,284],"class_list":["post-5977","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enseignement","category-informatique","category-mathematiques","category-python","tag-loi-binomiale","tag-poo","tag-variable-aleatoire"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires<\/title>\n<meta name=\"description\" content=\"Les outils pour les probabilit\u00e9s en Python (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser. Je veux y rem\u00e9dier.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires\" \/>\n<meta property=\"og:description\" content=\"Les outils pour les probabilit\u00e9s en Python (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser. Je veux y rem\u00e9dier.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-09T09:50:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-25T15:45:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"640\" \/>\n\t<meta property=\"og:image:height\" content=\"480\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires\",\"datePublished\":\"2021-04-09T09:50:11+00:00\",\"dateModified\":\"2022-01-25T15:45:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/\"},\"wordCount\":846,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/probabilites-python-loi-binomiale.jpg\",\"keywords\":[\"loi binomiale\",\"poo\",\"variable al\u00e9atoire\"],\"articleSection\":[\"Enseignement\",\"Informatique\",\"Math\u00e9matiques\",\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/\",\"name\":\"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/probabilites-python-loi-binomiale.jpg\",\"datePublished\":\"2021-04-09T09:50:11+00:00\",\"dateModified\":\"2022-01-25T15:45:48+00:00\",\"description\":\"Les outils pour les probabilit\u00e9s en Python (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser. Je veux y rem\u00e9dier.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/probabilites-python-loi-binomiale.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/probabilites-python-loi-binomiale.jpg\",\"width\":640,\"height\":480},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2021\\\/04\\\/09\\\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires","description":"Les outils pour les probabilit\u00e9s en Python (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser. Je veux y rem\u00e9dier.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/","og_locale":"fr_FR","og_type":"article","og_title":"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires","og_description":"Les outils pour les probabilit\u00e9s en Python (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser. Je veux y rem\u00e9dier.","og_url":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/","og_site_name":"Mathweb.fr","article_published_time":"2021-04-09T09:50:11+00:00","article_modified_time":"2022-01-25T15:45:48+00:00","og_image":[{"width":640,"height":480,"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg","type":"image\/jpeg"}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires","datePublished":"2021-04-09T09:50:11+00:00","dateModified":"2022-01-25T15:45:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/"},"wordCount":846,"commentCount":0,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg","keywords":["loi binomiale","poo","variable al\u00e9atoire"],"articleSection":["Enseignement","Informatique","Math\u00e9matiques","Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/","url":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/","name":"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg","datePublished":"2021-04-09T09:50:11+00:00","dateModified":"2022-01-25T15:45:48+00:00","description":"Les outils pour les probabilit\u00e9s en Python (loi binomiale et variables al\u00e9atoires) ne sont pas tr\u00e8s pratiques \u00e0 utiliser. Je veux y rem\u00e9dier.","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2021\/04\/probabilites-python-loi-binomiale.jpg","width":640,"height":480},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2021\/04\/09\/probabilites-et-python-au-lycee-loi-binomiale-et-variables-aleatoires\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Probabilit\u00e9s et Python au lyc\u00e9e: loi binomiale et variables al\u00e9atoires"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/5977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=5977"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/5977\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media\/5978"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=5977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=5977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=5977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}