{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Simulation et évaluation\n",
    "\n",
    "Dans ce TP les consignes en orange correspondent à consignes qui seront évaluées. Comme d'habitude, vous avez tout à faire le droit d'échanger avec vos voisins et d'aller chercher des informations dans les TPs précédents.\n",
    "\n",
    "## Echauffement et pyramide\n",
    "\n",
    "D'après wikipedia:\n",
    "\n",
    "    La pyramide de Khéops ou grande pyramide de Gizeh est un monument construit par les Égyptiens de l'Antiquité, formant une pyramide à base carrée. Tombeau présumé du pharaon Khéops, elle fut édifiée il y a plus de 4 500 ans, sous la IVe dynastie, au centre du complexe funéraire de Khéops se situant à Gizeh en Égypte. \n",
    "    \n",
    "    Ce monument forme une pyramide à base carrée de 440 coudées royales anciennes, soit environ 230,5 mètres. Il est constitué d'environ 2 000 000 blocs de pierre calcaire d'environ 2,5tonnes chacuns.    \n",
    "    \n",
    "\n",
    "<div style=\"background-color: #fa8258;\">\n",
    "Ecrire un programme qui présente cette pyramide. Il devra aussi calculer la périmètre de la base de la pyramide ainsi qu'une estimation de son poid total.\n",
    "    \n",
    "Critères d'évaluations:\n",
    "<ul>\n",
    "    <li> Réspect de la consigne (présentation et grandeurs à calculer)</li>\n",
    "    <li> Utilisation de variables pour le calcul du périmètre et du poids de la pyramide. </li>\n",
    "    <li> <strong>Bonus:</strong> le calcule du périmètre se fera avec une fonction.\n",
    "</ul>\n",
    "   <strong> Sauver votre programme dans \"Ordinateur > Ma classe > Restitution de Devoirs\" en le nommant</strong> <code>nom-prénom-pyramide.py</code> (Mettre les 2 noms de familles si vous travaillez à 2).\n",
    "</div> \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Simulation de dés\n",
    "\n",
    "<div style=\"background-color: #fa8258;\">\n",
    "Copier-coller le bloc le programme suivant. Puis commenter (avec #) pour expliquer ce que fait chaque ligne.\n",
    "</div>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from random import randint # Import de randint qui génère un entier aléatoire entre 2 nombres.\n",
    "print(\"--- Simulateur de lancer de dés ---\")\n",
    "print(\"Première situation\")\n",
    "de1 = randint(1, 6)\n",
    "de2 = randint(1, 10)\n",
    "resulat1 = de1 * de2\n",
    "print(\"La première situation donne\", resulat1)\n",
    "print(\"Deuxième situation\")\n",
    "resulat2 = randint(1, 8) * randint(1, 8)\n",
    "print(\"La deuxième situation donne\", resulat2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<div style=\"background-color: #fa8258;\">\n",
    "Transformer le programme pour qu'il simule les deux situations suivantes:\n",
    "<ul>\n",
    "    <li> Situation 1: On fait la somme des résultats des lancers de 2 dés à 18 faces.</li>\n",
    "    <li> Situation 2: On fait le produit des résultats des lancers de deux dés à 3 faces et d'un dé à 4 faces.</li>\n",
    "</ul>\n",
    "</br>\n",
    "Vous ètes invités à apporter toutes les améliorations qui vous semblent interessantes.\n",
    "</br>\n",
    "</br>\n",
    "Vous serez noté suivant les critères suivants:\n",
    "<ul>\n",
    "    <li> Qualité des commentaires qui expliquent le fonctionnement du programme.</li>\n",
    "    <li> Fonctionnement de votre programme et respect de la consigne.</li>\n",
    "    <li> Qualité des améliorations apportées.</li>\n",
    "</ul>\n",
    "<strong> Sauver votre programme dans \"Ordinateur > Ma classe > Restitution de Devoirs\" en le nommant</strong> <code>nom-prénom-simlulation.py</code> (Mettre les 2 noms de familles si vous travaillez à 2).\n",
    "</div> \n",
    "    \n",
    "- [ ] Copier-coller le bloc à la suite. Puis commenter."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "if resulat1 > resulat2:\n",
    "    print(\"La première situation gagne\")\n",
    "else:\n",
    "    print(\"La deuxième situation gagne\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- [ ] Quelle situation semble donner le score le plus grand?\n",
    "- [ ] Ouvrir un nouveau fichier, copier-coller le programme suivant puis commenter chaque ligne pour expliquer son fonctionnement."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from random import randint\n",
    "\n",
    "print(\"--- Simulateur de lancer de dés ---\")\n",
    "\n",
    "for i in range(10):\n",
    "    print(\"---------------------\")\n",
    "    print(\"# Simulation numéro\", i+1)\n",
    "    \n",
    "    print(\"Première situation\")\n",
    "    de1 = randint(1, 6)\n",
    "    de2 = randint(1, 10)\n",
    "    resulat1 = de1 * de2\n",
    "    print(\"La première situation donne\", resulat1)\n",
    "    \n",
    "    print(\"Deuxième situation\")\n",
    "    resulat2 = randint(1, 8) * randint(1, 8)\n",
    "    print(\"La deuxième situation donne\", resulat2)\n",
    "    \n",
    "    if resulat1 > resulat2:\n",
    "        print(\"-> La première situation gagne.\")\n",
    "    else:\n",
    "        print(\"-> La deuxième situation gagne.\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "---\n",
    "\n",
    "Pour chaque problème qui suit, avant de vous lancer dans sa résolution, réfléchissez à la réponse que vous donneriez intuitivement.\n",
    "\n",
    "---"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dés de Efrons\n",
    "\n",
    "On dispose de 3 dés à 6 faces équilibrés avec les nombres suivants sur leurs faces.\n",
    "\n",
    "- A : 1, 6, 11, 12, 13, 14\n",
    "- B : 2, 3, 4, 15, 16, 17\n",
    "- C : 5, 7, 8, 9, 10, 18\n",
    "\n",
    "**On souhaite savoir si un dé est plus avantageux que les autres.**\n",
    "<div style=\"background-color: #fa8258;\">\n",
    "\n",
    "**Vous enregistrez votre programme dans \"Ordinateur > Ma classe > Restitution de Devoirs\" sous le nom** `nom-prénom-deEfron.py`\n",
    "\n",
    "</div>\n",
    "\n",
    "Proposition d'étapes pour répondre à cette question\n",
    "\n",
    "1. Simuler le lancer de ces 3 dés.\n",
    "2. Simuler en même temps les dés A et B. Lequel semble donner le meilleur score?\n",
    "3. Faire la même chose avec les dés A et C puis avec les dés B et C.\n",
    "4. Y a-t-il un dé plus fort que les autres?\n",
    "5. Simuler le lancer des 3 dés en même temps lequel semble le plus fort?\n",
    "\n",
    "Astuces pour simuler les lancés de dés:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "from random import choice\n",
    "# On définit les valeurs inscrites sur chaque face\n",
    "deA = [1, 6, 11, 12, 13, 14]\n",
    "# Python choisi une face au hasard\n",
    "print(choice(deA))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Les dés des Dudu\n",
    "\n",
    "Dans [le problème des dés des Dudu](https://mathix.org/video/problemes_ouverts/PB_DUDU/PBDUDU7-d%C3%A9.mp4), les deux frères ont chacun deux dés différents:\n",
    "\n",
    "- Le frère 1: a un dé qui va de 0 à 9 et un dé de 1 à 8.\n",
    "- Le frère 2: a un dé de 1 à 12 et un dé classique 1 à 6.\n",
    "\n",
    "**On veut savoir qui sera le premier à faire 17 en ajoutant le résultat de ses 2 dés.**\n",
    "\n",
    "À vous de simuler cette situation pour répondre à la question."
   ]
  }
 ],
 "metadata": {
  "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.7.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
