Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme

Posté par
Maia22
29-03-18 à 21:16

Bonjour tout le monde, je doit faire un algorithme et répondre à une question mais je suis bloquée. Mon prof de maths m'a aidée à faire l'algorithme mais je n'arrive pas à le comprendre et donc à l'utiliser pour répondre à la question. Pourriez vous m'aider ?
Voici l'algorithme:
from random import*
def lancer() :
        g=0
        for i in range (1,501):
               d=randint(1,6)
               d1=randint(1,6)
               s=d+d1
               if s==8:
                        g=g+1
        print(g)
Voici la question:
On mise sur une somme et si on obtient la bonne somme on gagne 8€, sinon on perd 1€. Sur quelle somme faut-il miser ?
Merci de me répondre au plus vite.

Posté par
mathafou Moderateur
re : Algorithme 29-03-18 à 21:24

Bonjour,

aucun rapport avec la question

l'algorithme tire deux valeurs au hasard entre 1 et 6 (deux dés) , 500 fois, et compte le nombre de fois ou la somme de ces deux valeurs est égale à 8

il serait bon que les demandeurs comprennent que raconter des trucs qui ne sont pas la copie mot à mot exacte de l'ensemble de l'énoncé ne fait que leur faire perdre du temps à eux ...

Posté par
Maia22
re : Algorithme 29-03-18 à 21:26

Mais pourtant j'ai bien recopie l'énoncé mot pour mot, je comprend pas.

Posté par
Maia22
re : Algorithme 29-03-18 à 21:27

Mais bon si vous le dite je vous crois mais qu'est ce que je devrais changer à mon algorithme alors pour que cela fonctionne ?

Posté par
pgeod
re : Algorithme 29-03-18 à 21:35

Au lieu d'utiliser une variable g, on pourrait utiliser un tableau
ou une variable liste  pour comptabiliser le nombre de fois
où s == 2, s== 3, s == 4, etc..., s == 12

Posté par
Maia22
re : Algorithme 29-03-18 à 21:39

Donc si j'ai bien compris j'enlève la variable g, et je rajoute s==1,. s==2 ect... jusqu'à s==12

Posté par
Maia22
re : Algorithme 29-03-18 à 21:40

Mais je ne peux pas faire ça sous forme de "boucle" au lieux d'écrire tout les s== ?

Posté par
pgeod
re : Algorithme 29-03-18 à 21:45

Ok pour une boucle en effet.

Définis déjà la variable liste, que l'on peut appeler l,
en lieu et place de la variable g, puis
en remplacement de g = g + 1
on écrira :  l(s) = l(s) + 1

Posté par
Maia22
re : Algorithme 29-03-18 à 21:51

Donc si j'ai bien compris ça donnerais ça:
def lancer() :
        for i in range (1,501):
                d=radiant (1,6)
                d1=randint (1,6)
                s=d+d1
                if s==8:
                        I(s) =I(s) +1
            print (I)

Posté par
pgeod
re : Algorithme 29-03-18 à 21:57

Ben non.
Que vient faire encore le :  if s==8:  ???

On va dire que l est un tableau ou une liste de 12 éléments,
tous initialisé à 0 en début de programme (idem à g = 0)

- le premier élément de la liste est l(1)
- le deuxième élément de la liste est l(2) ;
il comptabilise le nombre de fois où s == 2 est obtenu.
- le troisième élément de la liste est l(3) ;
il comptabilise le nombre de fois où s == 3 est obtenu.
et,.....
- le douzième élément de la liste est l(12) ;
il comptabilise le nombre de fois où s == 12 est obtenu.

Posté par
Maia22
re : Algorithme 29-03-18 à 22:13

Ah oui pardon, je peux mettre for i in range (13) pour mettre un intervalle de 0 à 12. Et après j'enlève la ligne s==8.

Posté par
pgeod
re : Algorithme 29-03-18 à 22:20

toujours pas.
Laisse la boucle for comme elle est
dans l'algorithme initial,
et enlève juste la ligne :   if s==8:

Posté par
Maia22
re : Algorithme 29-03-18 à 22:24

J'espère que cette fois c'est la bonne:
for i in range (1,501):
                d=radiant (1,6)
                d1=randint (1,6)
                s=d+d1
              (s) =I(s) +1
            print (I)
              
                    

Posté par
mathafou Moderateur
re : Algorithme 29-03-18 à 22:55

juste pour info car pgeod a bien fait avancer le schmillblick :

Citation :
Mais pourtant j'ai bien recopie l'énoncé mot pour mot
,
tu confonds le mot "question" et le mot "énoncé"

l'énoncé c'est depuis le tout premier mot juste après "Exercice n° .."
il manque ce que l'on doit donc deviner, à défaut d'énoncé :
une histoire de lancer de deux dés etc ...

allez je vous laisse vous battre avec ces listes dans le but d'obtenir les diverses probabilités de gains selon les sommes choisies
alors que l'algorithme d'origine ne donnait cette probabilité que pour la seule somme de 8

Citation :
J'espère que cette fois c'est la bonne:

aux erreurs de frappe près
moi je verrais plutôt :
l[s]=I[s] +1

crochets au lieu de parenthèses ...
c'est vrai que écrire ici sur l'ile [s] risque de faire des choses bizarres (provoquer un soulignement du texte)
on peut toujours écrire sans risque (à défaut de ma façon de tricher avec le fonctionnement des balises de l'ile)
l[ s] en ajoutant un espace

Posté par
bbomaths
re : Algorithme 29-03-18 à 23:22

Bonsoir.

Une remarque, il manque pour l'instant la déclaration et l'initialisation de la liste et la correction du radiant.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !