#!/usr/bin/env python # coding: utf-8 # # Les intervalles de fluctuation # ## Les paramètres # In[1]: import math p=0.7 n=100 # ## En seconde # In[2]: k=1/math.sqrt(n) a=p-k b=p+k print(f"I=[{a:.8f} ; {b:.8f}]") # ## En terminale # In[3]: k=1.96*math.sqrt(p*(1-p))/math.sqrt(n) a=p-k b=p+k print(f"I=[{a:.8f} ; {b:.8f}]") # ## En Première # In[4]: #------------------------------------------------------ def fact(n) : "Calcule factoriel n." if (n==0) : return 1 else : p=1 for k in range(1,n+1): p=p*k return p #------------------------------------------------------ def combin (n,k): "Calcule k parmi n." p=1 for i in range(n-k+1,n+1) : p=p*i return p//fact(k) def binomial(n,p,k): "Calcule p(x=k)" return math.exp(math.log(combin(n,k))+k*math.log(p)+(n-k)*math.log(1-p)) cumul=0 d=dict() # dictionaire des (k,p(x=k)) for k in range(n+1): cumul+=binomial(n,p,k) d[k]=cumul for (c,v) in d.items() : # recherche de a if v>0.025 : a=c break for (c,v) in d.items() : # recherche de b if v>0.975 : b=c break print(f"I=[{a/n:.8f} ; {b/n:.8f}]") # In[16]: d_bas=dict((c,v) for (c,v) in d.items() if a-10