{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "0Ntb8bau4V18" }, "source": [ "# Python, Variable aléatoire et espérance\n", "\n", "---\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "FeZvKplb4lIR" }, "source": [ "## Rappel\n", "\n", "Dans les encadrés, il y a du code écrit dans le language Python. Pour faire **exécuter** le code, il vous faudra cliquer dessus puis appuyer sur `shift+entrer` de votre clavier. Le résultat du programme s'affichera alors en dessous.\n", "\n", "Nous allons travailler avec de l'aléatoire. N'hésitez pas à exécuter plusieurs fois les programmes, le résultat pourra changer." ] }, { "cell_type": "markdown", "metadata": { "id": "cDLuRPVr4zbC" }, "source": [ "## Génération de valeur aléatoire et affectation\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "RtzRRqrD7hJp" }, "source": [ "\n", "Nous allons commencer par importer un module *random* qui nous permet d'utiliser des fonctions Python mathématiques avancées. \n", "Pour importer des fonctions d'un module, on exécute en début de code **from** *nom_module* **import** *nom_fonction*. Si on veut importer toutes les fonctions du module, on peut aussi taper **from** *nom_module* **import** *\n", "\n", "* Exécuter ce code avant toute chose\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "kjj9QOtu7YoX" }, "outputs": [], "source": [ "from random import randint, random" ] }, { "cell_type": "markdown", "metadata": { "id": "oEmS3wQV6NK0" }, "source": [ "\n", "\n", "* Exécuter *une dizaine de fois* le code Python ci-dessous. Que fait-il ?\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "x04O92QV5ZpE", "outputId": "838eae03-9af7-49ec-f4c6-7b3ff42dec4f" }, "outputs": [], "source": [ "print(randint(1,10))" ] }, { "cell_type": "markdown", "metadata": { "id": "gbSoIN9U9-yK" }, "source": [ "* Exécuter *une dizaine de fois* le code Python ci-dessous. Que fait-il ?\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "VHTA9az19_9d", "outputId": "1483d01e-d3fa-455d-d4e4-4cf062e7a199" }, "outputs": [], "source": [ "n=randint(100,200)\n", "print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Écrire une programme qui génère un nombre aléatoire entre 10 et 20." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Écrire un programme qui simule un lancer d'un dé à 6 faces." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "9qw8LHnS9nHJ" }, "source": [ "\n", "\n", "* Exécuter *une dizaine de fois* le code Python ci-dessous. Que fait-il ?\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "Yn1RF8u_7dAC", "outputId": "e5ba805d-f0a2-4d49-bfcc-69ffba0be20f" }, "outputs": [], "source": [ "r=random()\n", "print(r)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Écrire un résumé pour expliquer le fonctionnement de `random` et de `randint`" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Dans l'encadré ci-dessous, écrire un code Python suivant les instructions suivantes :\n", " - simuler deux lancers de dés successifs\n", " - afficher la somme des deux dés" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "YM1Vk5vU_GWr" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Exécuter votre programme plusieurs fois. Est-ce qu'il y a des nombres qui apparaissent plus souvent?" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "E0BUoBlr_2FK" }, "source": [ "## Tests avec Python\n", "Python peut nous permettre de tester si une variable est égale à une valeur grace à des outils de comparaison\n", "\n", "\n", "* Exécuter le code Python ci-dessous. Que fait-il ? Que veut dire `True` et `False`?\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 52 }, "id": "F3p3_tcIAQVX", "outputId": "a9e8f5ff-2c9c-4860-971d-0cd5ac71fb3e" }, "outputs": [], "source": [ "a=3\n", "print(a==3)\n", "print(a==2)" ] }, { "cell_type": "markdown", "metadata": { "id": "f8TvF4aSBTpk" }, "source": [ "\n", "* Exécuter le code Python ci-dessous. Que fait-il ?\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "JyqK6_EbAehv" }, "outputs": [], "source": [ "print(a>1)\n", "print(a<0)\n", "print(a>=2)\n", "print(a<=3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Écrire un programme dans lequel vous donner une valeur à une variable puis vous faites les tests pour déterminer si cette variable est strictement plus petite que 10, égale à 10 et plus grande que 20" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Écrire un résumé sur la comparaison des nombres en Python." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": { "id": "hbRVNyogApbV" }, "source": [ "\n", "\n", "- Dans l'encadré ci-dessous, écrire un code Python suivant les instructions suivantes :\n", " - simuler un lancer d'un dé classique à 6 faces\n", " - tester si le nombre obtenu est égal à 6\n", " - afficher la réponse renvoyée par le test\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Y2XAs0LMAxk_" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "x9dbzY4dBYhD" }, "source": [ "## Instructions conditionnelles\n", "En Python, suite à un test, on peut vouloir exécuter des instructions différentes en fonction du résultat du test.\n", "\n", "- Exécuter le code Python ci-dessous. Expliquer ce qu'il fait." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 52 }, "id": "lugFwQgIGTmF", "outputId": "e6774df5-bdc9-4e21-fc6f-cb994eae1b06" }, "outputs": [], "source": [ "a=randint(1,3)\n", "print(a)\n", "if a>2:\n", " print('a est plus grand que 2')\n", "else :\n", " print('a est plus petit ou égal à 2')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Écrire un programme qui génère un nombre entre 10 et 20. Si ce nombre est plus grand que 18, on affiche \"gagné\", sinon \"perdu\"." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Proposer une programme qui utilise une condition." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "6oOgqarGHkXj" }, "source": [ "\n", "\n", "- Dans l'encadré ci-dessous, écrire un code Python simulant un jeu de dés : \n", " - lancer deux dés consécutifs et stocker la somme des deux dés dans une variable `somme`\n", " - créer une variable `gain` qui vaut 0 au début du *programme*\n", " - tester la valeur de votre somme : si elle vaut au moins 10, vous gagner 10 points ; sinon, vous perdez 1 point\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "kmTqw8vpIXqj" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "0LjWEU-VIY72" }, "source": [ "- Question mathématiques : dans l'expérience aléatoire décrite ci-dessous, le gain représente une variable aléatoire. Quelle est la loi de probabilité associée à cette variable aléatoire ? Et quelle est son espérance ?" ] }, { "cell_type": "markdown", "metadata": { "id": "XKYOOvQ_LuNo" }, "source": [ "## Réponse au hasard à un QCM\n", "\n", "Reprenons les exemples de l'activité \"Réponse au hasard à un QCM\".\n", "\n", "### Faut-il répondre?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous allons commencer à travailler sur la questions 1 du QCM.\n", "\n", "- Remplacer les `#` du programme ci-dessous avec les valeurs de la question 1.\n", "- Exécuter le code ci-dessous. Que fait-il ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 52 }, "id": "C1W-OfrDMJ4p", "outputId": "622afcf1-7527-4647-d76e-8d2dc8381ef3" }, "outputs": [], "source": [ "gain_reponse_juste = #\n", "proba_reponse_juste = #\n", "gain_reponse_fausse= #\n", "proba_reponse_fausse= #\n", "\n", "esperance = gain_reponse_juste*proba_reponse_juste+gain_reponse_fausse*proba_reponse_fausse\n", "print(esperance)\n", "\n", "if esperance >= 0:\n", " print('Je peux répondre au hasard')\n", "else:\n", " print('Je ne réponds pas au hasard!')\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "id": "tF_epYFAM-Og" }, "source": [ "- Dans les encadrés ci-dessous, écrire un code Python reprenant les données des questions 3 et 5 et permettant de décider si vous tentez de répondre à la question ou si vous décidez de ne pas répondre à la question du QCM\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "iSpNLoi_NUI_" }, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "3-23FvMfNTPO" }, "source": [ "### Simulation\n", "\n", "On va maintenant simuler ce QCM pour évaluer votre note finale.\n", "\n", "\n", "* Exécuter le code suivant qui détermine à quel rang se situent les réponses justes (inutile d'essayer de le comprendre).\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "Pm9Tpnf8Ngc5" }, "outputs": [], "source": [ "reponse_juste_question1 = randint(1,4)\n", "reponse_juste_question2 = randint(1,5)\n", "reponse_juste_question3 = randint(1,4)\n", "reponse_juste_question4 = randint(1,5)\n", "reponse_juste_question5 = randint(1,4)\n", "reponse_juste1_question6 = randint(1,6)\n", "reponse_juste2_question6 = randint(1,6)\n", "while (reponse_juste2_question6==reponse_juste1_question6):\n", " reponse_juste2_question6=randint(1,6)" ] }, { "cell_type": "markdown", "metadata": { "id": "fsnBjCHfOh8m" }, "source": [ "* Compléter le code suivant avec votre réponse à la question 1 puis exécuter-le. Que fait-il ?" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 35 }, "id": "tEpndajfOmn8", "outputId": "9071c0b7-4655-4d83-83b3-3ff6ab4f8789" }, "outputs": [], "source": [ "ma_reponse_question1= #ajouter le numéro de votre réponse ici\n", "gain=0\n", "if ma_reponse_question1==reponse_juste_question1:\n", " gain=gain+2\n", "else:\n", " gain=gain+0\n", "print(gain)" ] }, { "cell_type": "markdown", "metadata": { "id": "rsNoQIKWP0mO" }, "source": [ "- Dans l'encadré ci-dessous, reprendre le code Python ci-dessus pour simuler chacune de vos réponses aux 5 questions du QCM et calculer votre note finale. BONUS : ajouter la 6e question également.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "id": "F1jCOfLPQLEl" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": { "id": "LWW0V4o7QM_u" }, "source": [ "\n", "\n", "---\n", "\n", "Nous allons à présent simuler une répétition de la réponse au hasard à la première question du QCM. Nous allons commencer par répéter 3 fois l'expérience.\n", "- Exécuter ce code *une dizaine de fois*. Quel résultat obtenez-vous ? Expliquer ligne à ligne ce que fait ce code." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 52 }, "id": "oHFkI8mfY1tk", "outputId": "9987aca1-2f78-4e0f-fdd3-7650ad8becc6", "scrolled": true }, "outputs": [], "source": [ "print(esperance_question1)\n", "\n", "gain=0\n", "\n", "for i in range(3):\n", " ma_reponse_question1=randint(1,4)\n", " if ma_reponse_question1==reponse_juste_question1:\n", " gain=gain+2\n", " else:\n", " gain=gain+0\n", "gain_moyen=gain/3\n", "print(gain_moyen)" ] }, { "cell_type": "markdown", "metadata": { "id": "e3WdV6NggmTZ" }, "source": [ "Modifier le code ci-dessous pour répéter 10 fois, 100 fois, 1000 fois l'expérience. Pour chaque valeur, exécuter le code *plusieurs fois* et noter le résultat obtenu à chaque fois. Que constatez-vous ? " ] } ], "metadata": { "colab": { "name": "Python_VariableAleatoire&Esperance.ipynb", "provenance": [] }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 1 }