# 4-Simulations_repetitions

# Simulation et évaluation¶

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.

## Echauffement et pyramide¶

D'après wikipedia:

    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.

    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.

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. Critères d'évaluations:

- Réspect de la consigne (présentation et grandeurs à calculer)
- Utilisation de variables pour le calcul du périmètre et du poids de la pyramide.
- Bonus: le calcule du périmètre se fera avec une fonction.

Sauver votre programme dans "Ordinateur > Ma classe > Restitution de Devoirs" en le nommant `nom-prénom-pyramide.py` (Mettre les 2 noms de familles si vous travaillez à 2).

## Simulation de dés¶

Copier-coller le bloc le programme suivant. Puis commenter (avec #) pour expliquer ce que fait chaque ligne.
In [ ]:

    from random import randint # Import de randint qui génère un entier aléatoire entre 2 nombres.
    print("--- Simulateur de lancer de dés ---")
    print("Première situation")
    de1 = randint(1, 6)
    de2 = randint(1, 10)
    resulat1 = de1 * de2
    print("La première situation donne", resulat1)
    print("Deuxième situation")
    resulat2 = randint(1, 8) * randint(1, 8)
    print("La deuxième situation donne", resulat2)

Transformer le programme pour qu'il simule les deux situations suivantes:

- Situation 1: On fait la somme des résultats des lancers de 2 dés à 18 faces.
- Situation 2: On fait le produit des résultats des lancers de deux dés à 3 faces et d'un dé à 4 faces.

Vous ètes invités à apporter toutes les améliorations qui vous semblent interessantes. Vous serez noté suivant les critères suivants:

- Qualité des commentaires qui expliquent le fonctionnement du programme.
- Fonctionnement de votre programme et respect de la consigne.
- Qualité des améliorations apportées.

Sauver votre programme dans "Ordinateur > Ma classe > Restitution de Devoirs" en le nommant `nom-prénom-simlulation.py` (Mettre les 2 noms de familles si vous travaillez à 2).

- [ ] Copier-coller le bloc à la suite. Puis commenter.

In [ ]:

    if resulat1 > resulat2:
        print("La première situation gagne")
    else:
        print("La deuxième situation gagne")

- [ ] Quelle situation semble donner le score le plus grand?
- [ ] Ouvrir un nouveau fichier, copier-coller le programme suivant puis commenter chaque ligne pour expliquer son fonctionnement.

In [ ]:

    from random import randint

    print("--- Simulateur de lancer de dés ---")

    for i in range(10):
        print("---------------------")
        print("# Simulation numéro", i+1)

        print("Première situation")
        de1 = randint(1, 6)
        de2 = randint(1, 10)
        resulat1 = de1 * de2
        print("La première situation donne", resulat1)

        print("Deuxième situation")
        resulat2 = randint(1, 8) * randint(1, 8)
        print("La deuxième situation donne", resulat2)

        if resulat1 > resulat2:
            print("-> La première situation gagne.")
        else:
            print("-> La deuxième situation gagne.")

Pour chaque problème qui suit, avant de vous lancer dans sa résolution, réfléchissez à la réponse que vous donneriez intuitivement.

## Dés de Efrons¶

On dispose de 3 dés à 6 faces équilibrés avec les nombres suivants sur leurs faces.

- A : 1, 6, 11, 12, 13, 14
- B : 2, 3, 4, 15, 16, 17
- C : 5, 7, 8, 9, 10, 18

On souhaite savoir si un dé est plus avantageux que les autres.

**Vous enregistrez votre programme dans "Ordinateur > Ma classe > Restitution de Devoirs" sous le nom** `nom-prénom-deEfron.py`

Proposition d'étapes pour répondre à cette question

1. Simuler le lancer de ces 3 dés.
2. Simuler en même temps les dés A et B. Lequel semble donner le meilleur score?
3. Faire la même chose avec les dés A et C puis avec les dés B et C.
4. Y a-t-il un dé plus fort que les autres?
5. Simuler le lancer des 3 dés en même temps lequel semble le plus fort?

Astuces pour simuler les lancés de dés:

In [ ]:

    from random import choice
    # On définit les valeurs inscrites sur chaque face
    deA = [1, 6, 11, 12, 13, 14]
    # Python choisi une face au hasard
    print(choice(deA))

## Les dés des Dudu¶

Dans le problème des dés des Dudu, les deux frères ont chacun deux dés différents:

- Le frère 1: a un dé qui va de 0 à 9 et un dé de 1 à 8.
- Le frère 2: a un dé de 1 à 12 et un dé classique 1 à 6.

On veut savoir qui sera le premier à faire 17 en ajoutant le résultat de ses 2 dés.

À vous de simuler cette situation pour répondre à la question.