{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"pileface.ipynb","version":"0.3.2","provenance":[],"collapsed_sections":[]},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"metadata":{"id":"GUOrqzJrPWPv","colab_type":"text"},"cell_type":"markdown","source":[">>![PILE FACE](http://eratosthene.com/images/pileface.png)\n","\n","## **Partie A: simulations de 200 lancers de pile ou face**\n","\n","\n","1. Compléter le programme ci-dessous.\n","\n"]},{"metadata":{"id":"kUHoMW5_R1-6","colab_type":"code","colab":{}},"cell_type":"code","source":["from random import*\n","\n","def pileface():\n"," \n"," serie=\"\"\n","\n"," for i in range(200):\n"," \n"," piece=............\n"," \n"," if piece == 0:\n"," serie=serie+\"F\"\n"," \n"," else:\n"," ................\n"," \n"," return serie"],"execution_count":0,"outputs":[]},{"metadata":{"id":"MsL02vkxSBUn","colab_type":"text"},"cell_type":"markdown","source":["2. Exécuter plusieurs fois ce programme. Que fait ce programme?"]},{"metadata":{"id":"iwKzV4QsSKQb","colab_type":"text"},"cell_type":"markdown","source":["Répondre ici: "]},{"metadata":{"id":"wRLrXCMfSjhm","colab_type":"text"},"cell_type":"markdown","source":["## **Partie B: réalisation de 100 simulations de 200 lancers de pile ou face**\n","\n","\n","1. On considère la fonction $sequence()$ ci-dessous:"]},{"metadata":{"id":"bir7cFKb1VtR","colab_type":"code","colab":{}},"cell_type":"code","source":["def sequence():\n"," if pileface().count(\"PPPPPP\")>0 or pileface().count(\"FFFFFF\")>0:\n"," return True\n"," else:\n"," return False"],"execution_count":0,"outputs":[]},{"metadata":{"id":"geK6yKiITJqq","colab_type":"text"},"cell_type":"markdown","source":["2. Expliquer ce que fait cette fonction."]},{"metadata":{"id":"xmZndRVsTTS1","colab_type":"text"},"cell_type":"markdown","source":["Répondre ici: "]},{"metadata":{"id":"dZqoH9CJTfyj","colab_type":"text"},"cell_type":"markdown","source":["3. Écrire un programme permettant d'appeler 100 fois la fonction $sequence()$.\n","\n"]},{"metadata":{"id":"QY_5u_SrZ2Cj","colab_type":"code","colab":{}},"cell_type":"code","source":["# Programme\n"],"execution_count":0,"outputs":[]},{"metadata":{"id":"qMb6kuZFZ5l-","colab_type":"text"},"cell_type":"markdown","source":["4. Compléter le programme pour qu'il affiche la fréquence observée des séries de 200 lancers contenant au moins une idem-séquence de longueur 6."]},{"metadata":{"id":"pIqOhwv4Tugf","colab_type":"text"},"cell_type":"markdown","source":["## **Partie C: modélisation**\n","\n","On lance 200 fois de suite une pièce de monnaie équilibrée et on s'intéresse à la\n","probabilité d'obtenir au moins une idem-séquence de longueur 6 (suite de 6 P ou de 6\n","F consécutifs).\n","\n","Modélisation par un graphe probabiliste: définissons les états dans lesquels peut se trouver une série de lancers de pièces.\n","\n","Soit pour $1\\leqslant i \\leqslant 5$, $E_i$ l'état \\og la suite de lancers se termine par une idem-séquence de longueur $i$ et ne contient aucune idem-séquence de longueur 6 et soit F l'état la suite de lancers contient au moins une idem-séquence de longueur 6.\n","\n","Représentons l'évolution des lancers par un graphe probabiliste : à chaque lancer, on se\n","trouve dans un des états $E_i$ ou $F$ avec des probabilités de transition indiquées sur le graphe suivant :\n","\n","\n",">>![Graphe](http://eratosthene.com/images/graphe.png)\n","\n","\n","Examinons la situation après $n$ lancer(s) $(1 \\leqslant n \\leqslant 200)$.\n","Notons $p_n^i$ la probabilité que la série des $n$ lancers se trouve dans l'état $E_i$ \n","et $p_n$ la probabilité qu'elle soit dans l'état $F$.\n","\n","L'état initial est donné par $(p_1^1,p_1^2,p_1^3,p_1^4,p_1^5, p_1 ) = (1 , 0 , 0 , 0 , 0 , 0)$.\n","\n","1. Si on note $T$ la matrice de transition, donner la relation de récurrence liant $X_{n+1}$ et $X_{n}$. \n","\n"]},{"metadata":{"id":"yd8fyDkKZCuf","colab_type":"text"},"cell_type":"markdown","source":["Répondre ici:"]},{"metadata":{"id":"RjwK7zzPZFKe","colab_type":"text"},"cell_type":"markdown","source":["2. Compléter et saisir le programme Python permettant de calculer $X_{200}$ puis, $p_{200}$:"]},{"metadata":{"id":"gCYTJkbiHbUu","colab_type":"code","colab":{}},"cell_type":"code","source":["import numpy as np\n","import numpy.linalg as al\n","\n","X1=[1,0,0,0,0,0] \n","\n","# Matrice de transition\n","\n","T=np.array([[0.5,0.5,0.0,0.0,0.0,0.0],\n"," [0.5,0.0,0.5,0.0,0.0,0.0],\n"," [0.5,0.0,0.0,0.5,0.0,0.0], \n"," [0.5,0.0,0.0,0.0,0.5,0.0],\n"," [0.5,0.0,0.0,0.0,0.0,0.5],\n"," [0.0,0.0,0.0,0.0,0.0,1.0]])\n","\n","R=al.matrix_power(T,199)\n","\n","X200=np.dot(...,...) # Ligne à compléter\n","\n","print(X200)"],"execution_count":0,"outputs":[]},{"metadata":{"id":"AH3RCVMzZaA_","colab_type":"text"},"cell_type":"markdown","source":["Conclusion: "]}]}