{"cells":[{"metadata":{},"cell_type":"markdown","source":"![En tête general](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/En_tete_general.png)\n\n\n© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
\nLes activités partagées sur Capytale sont sous licence Creative Commons.\n\n Pour exécuter une saisie Python, sélectionner la cellule et valider avec SHIFT+Entrée.\n"},{"metadata":{},"cell_type":"markdown","source":"# Lancers d'une pièce (corrigé) "},{"metadata":{},"cell_type":"markdown","source":"\n
\n
\n \n
\nOn propose à un joueur de lancer trois fois d’affilée une pièce de monnaie équilibrée.\n

\nLa règle du jeu est la suivante :\n
\n\n
\n
\n
\n \n"},{"metadata":{},"cell_type":"markdown","source":"__1. Ecrire une fonction Python piece qui simule le lancer d’une pièce de monnaie, et renvoie 1 (ou True) si le résultat est pile et 0 (ou False) sinon.__\n\nAide Python : A l’aide de l’appel from random import randint, on peut utiliser l’instruction randint(a,b) qui renvoie aléatoirement un entier compris entre a et b.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"from random import randint\n\ndef piece():\n return randint(0,1)","execution_count":1,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"piece()","execution_count":2,"outputs":[{"output_type":"execute_result","execution_count":2,"data":{"text/plain":"1"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"__2. Effectuer les instructions suivantes, et expliquer leur lien avec la situation étudiée.__\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"lancers=[ piece() for k in range(3) ]\nlancers","execution_count":3,"outputs":[{"output_type":"execute_result","execution_count":3,"data":{"text/plain":"[0, 1, 0]"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"sum(lancers)","execution_count":4,"outputs":[{"output_type":"execute_result","execution_count":4,"data":{"text/plain":"1"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"__3. On considère la fonction Python jeux ci-dessous, qui reçoit un entier N en argument et qui renvoie une liste de trois valeurs.__\n\n__Indiquer ce que représentent, dans le cadre de l’énoncé, cet entier N et les trois valeurs de la liste renvoyée.__\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"def jeux(N):\n\n res=[0,0,0]\n \n for i in range(N):\n \n lancers=[piece() for k in range(3)]\n nb_piles=sum(lancers)\n \n if nb_piles==3:\n res[0]=res[0]+1\n elif nb_piles==2:\n res[1]=res[1]+1\n else:\n res[2]=res[2]+1\n \n return res","execution_count":5,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"jeux(1000)","execution_count":6,"outputs":[{"output_type":"execute_result","execution_count":6,"data":{"text/plain":"[125, 391, 484]"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"
\n L’organisateur du jeu demande une mise de 1€ pour participer au jeu.\n
Si le joueur gagne, il reçoit 4€, et si la partie est nulle, il est remboursé de sa mise.
\n
"},{"metadata":{},"cell_type":"markdown","source":"__4. Ecrire une fonction gain_algebrique qui reçoit en argument une liste L (qui sera fournie par la fonction jeux) et qui renvoie le gain algébrique du joueur (le gain algébrique du joueur s’obtient en soustrayant la mise du joueur à la somme qu’il reçoit).__\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"def gain_algebrique(L):\n return L[0]*3+L[1]*0+L[2]*(-1)","execution_count":7,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"gain_algebrique(jeux(1000))","execution_count":8,"outputs":[{"output_type":"execute_result","execution_count":8,"data":{"text/plain":"-165"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"__5. Dans cette question, on suppose que L est une liste générée par la fonction jeux.__\n__Que représente le résultat de la saisie ci-dessous?__\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"L=jeux(1000)\nsum(L)\n","execution_count":9,"outputs":[{"output_type":"execute_result","execution_count":9,"data":{"text/plain":"1000"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"__Tester la fonction gm ci-dessous. Que représente le résultat de la saisie proposée ?__"},{"metadata":{"trusted":true},"cell_type":"code","source":"def gm(L):\n return gain_algebrique(L)/sum(L)\n\ngm(L)","execution_count":10,"outputs":[{"output_type":"execute_result","execution_count":10,"data":{"text/plain":"-0.072"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"__Tester avec $10$, $100$ puis $10000$ parties. Le jeu semble-t-il favorable au joueur ?__\n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"gm(jeux(10)) , gm(jeux(100)) , gm(jeux(10000))","execution_count":11,"outputs":[{"output_type":"execute_result","execution_count":11,"data":{"text/plain":"(0.3, -0.16, -0.1189)"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"__6. Calculer les probabilités que le joueur gagne, que la partie soit nulle, puis que le joueur perde.__\n\n__Stocker ces $3$ valeurs, dans cet ordre, dans une liste nommée Proba.__\n\n__Calculer la valeur gm(Proba) et indiquer la valeur obtenue.__ \n\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"# Créer la liste Proba\nProba=[1/8,3/8,1/2] ","execution_count":12,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Exécuter la cellule pour effectuer l'appel à la fonction gm\ngm(Proba)","execution_count":13,"outputs":[{"output_type":"execute_result","execution_count":13,"data":{"text/plain":"-0.125"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"__7. Ecrire une fonction Python ecart qui reçoit en argument la liste L de répartition des résultats d’une série de parties et renvoie l’écart entre le gain moyen de ces parties et la valeur gm(Proba).__"},{"metadata":{"trusted":true},"cell_type":"code","source":"def ecart(L):\n return gm(L)-gm(Proba)","execution_count":14,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"__Tester pour des listes de longueur $100$,$10000$,$100000$,$1000000$… Que constate-t-on ?__"},{"metadata":{"trusted":true},"cell_type":"code","source":"ecart(jeux(100)) , ecart(jeux(10000)) , ecart(jeux(100000)) , ecart(jeux(1000000))","execution_count":15,"outputs":[{"output_type":"execute_result","execution_count":15,"data":{"text/plain":"(0.20500000000000002, -0.01730000000000001, 0.004470000000000002, -0.0023350000000000037)"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"![Bernoulli](https://raw.githubusercontent.com/PythonLycee/PyLyc/master/img/Bernoulli.jpg)\n\n
Jacques Bernoulli (1654-1705) est le premier a avoir démontré la loi des grands nombres.
"},{"metadata":{},"cell_type":"markdown","source":"© Copyright Franck CHEVRIER 2019-2022 https://www.python-lycee.com.
\nLes activités partagées sur Capytale sont sous licence Creative Commons.\n

\nDernière modification de l'activité : Juillet 2022"}],"metadata":{"celltoolbar":"Raw Cell Format","kernelspec":{"display_name":"Python 3","language":"python","name":"python3"}},"nbformat":4,"nbformat_minor":2}