diff --git a/2A/Maths/tp/TP1.pdf b/2A/Maths/tp/TP1.pdf new file mode 100644 index 0000000..f541abc Binary files /dev/null and b/2A/Maths/tp/TP1.pdf differ diff --git a/2A/Maths/tp/tp1.py b/2A/Maths/tp/tp1.py new file mode 100644 index 0000000..9ea64aa --- /dev/null +++ b/2A/Maths/tp/tp1.py @@ -0,0 +1,198 @@ +import numpy.random as npr +from collections import Counter + +# Chiffre entre 0 et 1 +print(npr.rand()) + +# reset l'instance random de base =1 ==> soit none +print(npr.seed(seed=1)) + +# random entre 3<= et >5 +print(npr.randint(3,5)) + +# 4- énère les résultats des commandes précédentes. +print(npr.rand()) +print(npr.seed(seed=1)) +print(npr.randint(3,5)) + +# 5- Générer un tableau binaire de taille 10 (qui ne contient que 0 ou 1) +print(npr.randint(0,2,10)) +tab1=npr.randint(0,2,10) + +# 6 - A l’aide de la commande Counter de la classe collections, calculer les occurrences de 1 et de 0. +print(Counter(tab1)) + +# 7 - Écrire une fonction fct_occ qui prend un tableau d’entiers en entrée, calcule les +# occurrences de chacun de ses éléments et rend un tableau qui contient ces occurrences. +def fct_occ(tab): + occ=Counter() + for i in tab: + occ[i]+=1 + return occ + +print(fct_occ(tab1)) + +# 8 - Générer un tableau aléatoire tab de taille 5 qui ne contient que des entiers entre 1 +# et 6. +tab2 = npr.randint(1,7,5) +print(tab2) + +# 9 - À l’aide de la fonction fct_occ et de tab, comment détecteriez-vous +# • Un carré ? quattres valeurs identique dans tab1 +# • Un full ? Trois valeurs identique et deux autres identiques +# • Une petite suite ? 5 valeurs différentes qui se suivent + +# Exo 2 + +#? 1 +# P(carre) = (6*5*5)/6⁵ ==> proba théorique + +def fct_carre(): + carre = 0 + for i in range(10000): + tab = npr.randint(1,7,5) + res = fct_occ(tab) + for k in res.values(): + if k == 4: + carre += 1 + return carre + +print("Estimation numérique : ",fct_carre()/10000) +print("Proba théorique : P(carre) = (6*5*5)/6⁵") + +#? 2 +# P(full) = (6*5*4)/6⁵ ==> proba théorique + +def fct_full(): + full = 0 + for i in range(10000): + tab = npr.randint(1,7,5) + res = sorted(fct_occ(tab).values()) + if res == [2,3]: + full += 1 + return full + +print("Estimation numérique : ",fct_full()/10000) +print("Proba théorique : P(carre) = (6*5*4)/6⁵") + +#? 3 +# P(brelan) = (6*5*4)/6⁵ ==> proba théorique + +def fct_brelan(): + brelan = 0 + for i in range(10000): + tab = npr.randint(1,7,5) + res = sorted(fct_occ(tab).values()) + if res == [1,1,3]: + brelan += 1 + return brelan + +print("Estimation numérique : ",fct_brelan()/10000) +print("Proba théorique : P(carre) = (6*5*4)/6⁵") + +#? 4 +# P(yam) = (6)/6⁵ ==> proba théorique + +def fct_yam(): + yam = 0 + for i in range(10000): + tab = npr.randint(1,7,5) + res = fct_occ(tab) + for k in res.values(): + if res == [2,3]: + yam += 1 + return yam + +print("Estimation numérique : ",fct_yam()/10000) +print("Proba théorique : P(carre) = (6)/6⁵") + +#? 5 +# P(ps) = (3)/6⁵ ==> proba théorique + +def fct_ps(): + ps = 0 + for i in range(10000): + tab = npr.randint(1,7,5) + res = sorted(fct_occ(tab).values()) + if res == [2,3]: + ps += 1 + return ps + +print("Estimation numérique : ",fct_ps()/10000) +print("Proba théorique : P(carre) = (3)/6⁵") + +# Exo 3 + +#1 +def jouer_6(): + tab=[0,0,0,0,0] + tab6=[0,0,0,0,0] + nombre=0 + n=Counter() + for i in range(3): + for i in range(len(tab)): + tab[i]=npr.randint(1,7) + for k in range(len(tab6)): + if (tab6[k]==6): + tab[k]=0 + for j in range(len(tab)): + if (tab[j] == 6): + tab6[j]=6 + for l in range(len(tab6)): + if (tab6[l]==0): + tab6[l]=tab[l] + n = fct_occ(tab6) + nombre = n[6] + return nombre + +print("") +occ=jouer_6() +print(occ) + +#2 +x=[] +for i in range(10000): + npr.seed(seed=i) + x.append(jouer_6()) + + +#plt.hist(x,orientation='horizontal') +#plt.show() + +#3 +#a. +lancer1=0 +lancer2 =0 +lancer3 =0 +lancer4= 0 +lancer5=0 +total=0 +for i in x: + if (i == 1): + lancer1+=1 + if (i == 2): + lancer2+=1 + if (i == 3): + lancer3+=1 + if (i == 4): + lancer4+=1 + if (i == 5): + lancer5+=1 + total+=1 + +print("") +print("") +print("Proba d'avoir 1 le lance d'un 6: ", lancer1/total, "%") +print("Proba d'avoir 2 le lance d'un 6: ", lancer2/total, "%") +print("Proba d'avoir 3 le lance d'un 6: ", lancer3/total, "%") +print("Proba d'avoir 4 le lance d'un 6: ", lancer4/total, "%") +print("Proba d'avoir 5 le lance d'un 6: ", lancer5/total, "%") + +#b. +print("") +print("Pour obtenir un Yam de 6, on aura ", lancer5/total, "% \de chance d'en avoir un sur 10.000 lancers.") + +# Ex 4 + +# P(3lancers) = 1/6 * 5/6 * 5/6 +# P(5lancers) = 6/6 * 1/6 * 1/6 * 1/6 * 1/6 \ No newline at end of file