Want to make creations as awesome as this one?

Transcript

La banane sur l'île déserte

Cliquer pour continuer :
Compte-rendu python

Mise en situation

Voici deux dés ; tentez de les lancer plusieurs fois et comptez le nombre de fois où vous mangez la banane.
AVANT DE COMMENCER :
Nous avons été mis dans la situation suivante : nous étions sur une île déserte avec une “créature de rêve”. Il n’y avait pour nourriture qu’une banane, et la créature nous proposait un marché : on lançait deux dés, et si le chiffre le plus grand était un 4 ou un 5, elle mangeait la banane, si c’était 1, 2, 3 ou 4, on mangeait la banane.Intuitivement, nous avons pour commencer réfléchi à quelle était la meilleure solution, qui pour nous était de ne pas accepter le marché. Mais pour obtenir une réponse fiable, il nous a fallu construire tout un programme sur pyzo...

Première simulation expériementale

PARTIE 1
Nous pouvons voir qu'ici, le résultat affiché est 7
pour obtenir un résultat aléatoire nous avons utilisé la fonction radint ( ), qui nous permettait d'obtenir un en entier "au hasard" entre deux valeurs. Mais avant, il fallait bien télécharger la bibliothèque "from random import*" afin d'avoir les outils de probabilité ; (l'étoile signifie qu'on télécharge tout)
Il s'agissait d'une expérience aléatoire, dont on ne pouvait donc pas prévoir le résultat qui dépendait du hasard.
Pour résoudre ce problème, nous avons utlisé la simulation expérimentale, pour déterminer le nombre de fois où on gagnait sur plusieurs éssais.
Mais bien qu'il fonctionne, ce programme présentait de nombreux inconvénients, comme de le fait de devoir compter manuellement ou encore le fait que ça ne fasse pas un nombre de simulations assez grand pour être fiable
Les résultats étaient les suivants : au final, sur 260 simulations soit 20 par personne, nous avons obtenu 120 réussites, ce qui faisait une fréquence de 46% de réussite.
Pour cela nous avons défini une nouvelle fonction : la fonction banane ( ) (il faut quand même mettre les parenthèses bien qu'il n'y ait pas de paramètres).nous avons ensuite déterminé deux valeurs a et b dont le résultat aléatoire se trouvait entre 1 et 6.Puis pour finir, nous avons ajouté une condition à l'aide de "if" et "else" selon lesquelles on affichait du texte.
Il fallait toujours faire attention à la syntaxe : les indentations, les deux points, les guillemets pour le texte....
Il nous permettait de déterminer qui gagnait la banane sur un essai et d'afficher le résultat grâce à "print".
Après avoir commencé à maîtriser cette fonction, nous avons créé un premier programme informatique qui était assez simple.

Boucle itérative

PARTIE 2
Puis nous avons créé une seconde boucle dans laquelle on déterminait les valeurs de départ et d'arrivée.
Celle-ci donnait la liste des carrés parfaits jusqu'à 10
Il sagissait d'une variable i qui changeait successivement de valeur ; ici : i=0 puis i=1 puis i=2... le tout jusqu'à 9 (elle travaille donc 10 fois)
Ensuite, nous avons créé une boucle itérative.

Simulations expérimentales finales

PARTIE 3
De plus, il y avait un autre inconvénient à cette fonction : en effet, lorsqu'on voulait tester avec un plus grand nombre, il fallait recréer ou changer le code (ex : banane5000fois ( ))
Cependant, 100 était encore trop peu ; en effet, selon la loi des grands nombres, plus le nombre de simulations est important, plus on se rapproche de la réelle probabilité de gagner.
Pour se faire, nous avons rajouté la variable N qui représentait le nombre de victoire. Au départ, nous l'avons "initialisée" en précisant qu'elle était à 0. Puis nous avons continué en ajoutant une boucle itérative qui allait jusqu'à 100, ce qui permettrait de réaliser la simulation 100 fois. Ensuite, nous avons remis le programme du tout début suivit de la condition disant que si a et b étaient inférieurs ou égaux à 4, on ajoutait 1 au comptoir des victoires : cela s'appelle l'écrasement de variable.pUIS ENFIN, nous avons écrit "return N", qui nous renvoie le nombre de victoire après les 100 simulations.
Dans un premier temps, nous avons créé une nouvelle fonction : banane100fois( ), qui nous permettrait d'effectuer 100 simulations.Nous avons également ajouté une nouvelle fonctionnalité : plustôt que de compter manuellement, nous avons fait en sorte que le nombre de victoires soit affiché.
Nous avions maintenant tous les outils en main pour réaliser un script avec de nombreux essais.
Nous nous sommes alors rendus compte qu'on trouvait des résultats plutôt similaires, qui se rapprochaient de O,44. Et nous nous sommes également rendus compte des limites de nos ordinateurs, qui, plus le nombre était grand, plus longtempts mettaient à répondre.Cependant, c'était le résultat le fiable qu'on ait pu obtenir.
C'est ainsi que nous avons créé beaucoupbananes(x).Nous nous sommes basés sur bananes100fois( ) en ajoutant certains éléments.
Pour pouvoir choisir le nombre de simulations, nous avons choisi une variable, x, puis nous avons défini la boucle itérative en fonction de x.Ensuite, nous avons ajouté une nouvelle variable, y, qui représente la fréquence de victoires. Ainsi, y est égal au nombre de victoires divisé par le nombre de simulations.
Ainsi, nous en sommes venus à la dernière étape : créer une fonction finale pour laquelle on choisit le nombre de simulations et qui nous renvoit le résultat en fréquence.
FINALEMENT, IL VALAIT MIEUX NE PAS ACCEPTER
ON GAGNE
ELLE GAGNE
Sur un cardinal de 36, nous gagnions 16 fois, ce qui fait une fréquence théorique de gagner de 0,44444.....
Pour finir, nous avons quand même calculé la probabilité de gagner manuellement pour obtenir la fréquence théorique...