{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Les intervalles de fluctuation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Les paramètres" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import math \n", "p=0.7\n", "n=100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## En seconde" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I=[0.60000000 ; 0.80000000]\n" ] } ], "source": [ "k=1/math.sqrt(n)\n", "\n", "a=p-k\n", "b=p+k\n", "\n", "print(f\"I=[{a:.8f} ; {b:.8f}]\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## En terminale" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I=[0.61018152 ; 0.78981848]\n" ] } ], "source": [ "k=1.96*math.sqrt(p*(1-p))/math.sqrt(n)\n", "\n", "a=p-k\n", "b=p+k\n", "\n", "print(f\"I=[{a:.8f} ; {b:.8f}]\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## En Première" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I=[0.61000000 ; 0.79000000]\n" ] } ], "source": [ "#------------------------------------------------------\n", "def fact(n) :\n", " \"Calcule factoriel n.\"\n", " if (n==0) :\n", " return 1\n", " else :\n", " p=1\n", " for k in range(1,n+1):\n", " p=p*k\n", " return p\n", "\n", "#------------------------------------------------------\n", "def combin (n,k):\n", " \"Calcule k parmi n.\"\n", " p=1\n", " for i in range(n-k+1,n+1) :\n", " p=p*i\n", " return p//fact(k)\n", "\n", "\n", "\n", "def binomial(n,p,k):\n", " \"Calcule p(x=k)\"\n", " return math.exp(math.log(combin(n,k))+k*math.log(p)+(n-k)*math.log(1-p))\n", "\n", "cumul=0\n", "d=dict() # dictionaire des (k,p(x=k))\n", "for k in range(n+1):\n", " cumul+=binomial(n,p,k)\n", " d[k]=cumul\n", "\n", "for (c,v) in d.items() : # recherche de a\n", " if v>0.025 :\n", " a=c\n", " break\n", " \n", "for (c,v) in d.items() : # recherche de b\n", " if v>0.975 :\n", " b=c\n", " break\n", "\n", "print(f\"I=[{a/n:.8f} ; {b/n:.8f}]\")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 52 | 0.000117\n", " 53 | 0.000256\n", " 54 | 0.000537\n", " 55 | 0.001086\n", " 56 | 0.002115\n", " 57 | 0.003968\n", " 58 | 0.007174\n", " 59 | 0.012498\n", " 60 | 0.020989\n", "------------------ 0,025\n", " 61 | 0.033979\n", " 62 | 0.053046\n", " 63 | 0.079880\n", " 64 | 0.116079\n", " 65 | 0.162858\n", " 66 | 0.220742\n", " 67 | 0.289281\n", " 68 | 0.366892\n", " 69 | 0.450876\n", " 70 | 0.537660\n" ] } ], "source": [ "d_bas=dict((c,v) for (c,v) in d.items() if a-10