Aller au contenu

Toscane


angelV

Messages recommandés

Posté(e)

Bonjour à tous,

Je dois rendre un dm d'informatique vendredi, et j'ai fais tous les exos à par celui-ci ...

Pourriez-vous m'aider ?

 

exo.png

  • E-Bahut
Posté(e)

Bonjour,

Ci-joint une possibilité de script pour la partie A :

import random
def frequence_somme_NEUF(taille_echantillon):
  n=0
  for i in range(1,taille_echantillon+1):
    s=0
    for j in range(1,4):
      s=s+random.randint(1,6)
    if s==9:
      n=n+1
  return(n/taille_echantillon)
 
print(frequence_somme_NEUF(1000))

 

Pour DIX, changer simplement NEUF en DIX et la condition if s==10.

 

Ce qui serait sympa, c'est un petit retour pour dire ce que tu en penses.

Posté(e)

Alors déjà merci beaucoup pour votre réponse,

votre script ressemble un peu à mon début et me suis corrigé.

Je travaille votre script et je tenterai de faire le B...

C'est la partie la plus importante et complexe je pense.

 

  • E-Bahut
Posté(e)

OK et merci pour le retour ?. Pour info, les tests m'ont donné autour de 0,115 pour s=9 et autour de 0,125 pour s=10, donc il semble bien qu'il y ait une différence.

Je ne suis pas sur que la suite soit plus complexe. Je regarderai également, mais pas avant demain après-midi, sauf si tu me dis à l'occasion que ce n'est plus utile.

Bonsoir.

 

  • E-Bahut
Posté(e)

La suite...

import random
def frequence_somme_NEUF(taille_echantillon):
  n=0
  for i in range(1,taille_echantillon+1):
    s=0
    for j in range(1,4):
      s=s+random.randint(1,6)
    if s==9:
      n=n+1
  return(n/taille_echantillon)
def frequence_somme_DIX(taille_echantillon):
  n=0
  for i in range(1,taille_echantillon+1):
    s=0
    for j in range(1,4):
      s=s+random.randint(1,6)
    if s==10:
      n=n+1
  return(n/taille_echantillon)

import matplotlib.pyplot as plt
def comparaison_graphique_somme_9_10(taille_echantillon):
  for i in range(0,taille_echantillon+1):
    y=frequence_somme_NEUF(taille_echantillon)
    plt.plot(i,y,'o',color='red')
    y=frequence_somme_DIX(taille_echantillon)
    plt.plot(i,y,'bs',color='blue')
    
comparaison_graphique_somme_9_10(100)
plt.show()
 

N.B.1  : Chez moi, l'affichage ne se fait qu'en bleu, en d'autres termes, avec ce script, ça garde la dernière couleur définie (ou alors, c'est du à la version en ligne de Python que j'utilise).

N.B.2 : Si tu as l'occasion, essaie de savoir pourquoi, dans la boucle for i in range(1,n), Python s'arrête à n-1. Est-ce qu'il y a une raison spéciale ? Moi, je trouve cela illogique, on ne pouvait pas programmer cette instruction pour qu'elle aille jusqu'à n, comme dans les autres langages de programmation ?

  • E-Bahut
Posté(e)

Bonsoir,

Après téléchargement, installation de Python et un peu de mal pour ajouter le module matplotlib, ci-joint ce que j'obtiens avec 1000 points. J'ai bien les deux couleurs différentes, donc c'est ma version en ligne qui ne fonctionnait pas tout à fait correctement.

Figure_1.png.b5fad12b4cdce522de0477605cfdb25e.png

 

Posté(e)

Alors, j'ai bien regardé ce que vous m'avez envoyé mais je retrouve le même message d'erreur qui est :

Traceback (most recent call last):
  File "K:\NSI\jour 5\Exo Toscane.py", line 21, in <module>
    import matplotlib.pyplot as plt
ModuleNotFoundError: No module named 'matplotlib'

Posté(e)

C'est bon, le pb est réglé, j'ai juste oublié d'installer le plug-in pour le matplotlib.

En tout cas merci beaucoup pour tout ce que vous avez fais...

Je vais retravailler tout ça et l'envoyer à mon enseignant.

Encore merci.

  • E-Bahut
Posté(e)

Oui, comme dit dans mon post précédent, c'était également mon problème. Donc, tout va bien.

En tout cas, le duc de Toscane avait raison, ça se voit surtout bien avec 10000 essais, mais là, il ne faut pas être pressé !

Bonne continuation.

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...
spam filtering
spam filtering