<< Forum maths || En bas
Algorithme
Message de chokr posté le 02-05-2010 à 21:45:17 (S | E | F)
Bonsoir, j'ai des exercices à faire à la maison, j'ai commencé le premier mais je ne sais pas si c'est juste. est-ce que quelqu'un pourrait me le corriger? merci d'avance:
On lance un dé, si on obtient 6 le lièvre atteint l'arrivée et gagne sinon la tortue avance d'une case . On continue jusqu'à ce que l'un des deux atteint l'arrivée.( sachant qu'il ya 5 cases)
Qui a le plus de chance de gagner?
Écrire un algorithme pour simuler cette expérience.
Voilà mon algorithme:
1 Variables
2 i est_du_Type nombre
3 l est_du_Type nombre
4 r est_du_Type nombre
5 Début_Algorithme
6 l Prend_La_Valeur 0
7 Pour i allant_de 1 a 6
8 Début_Pour
9 r Prend_la_Valeur round(0.5001+5.998*random())
10 Si (r==6) Alors
11 Début_Si
12 l Prend_La_Valeur 1
13 Fin_Si
14 Fin_Pour
15 Si (l==1) Alors
16 Début_Si
17 Afficher "Le lièvre a gagné"
18 Fin_Si
19 Sinon
20 Début_Sinon
21 Afficher "La tortue a gagné"
22 Fin_Sinon
23 Fin_algorithme
Message de chokr posté le 02-05-2010 à 21:45:17 (S | E | F)
Bonsoir, j'ai des exercices à faire à la maison, j'ai commencé le premier mais je ne sais pas si c'est juste. est-ce que quelqu'un pourrait me le corriger? merci d'avance:
On lance un dé, si on obtient 6 le lièvre atteint l'arrivée et gagne sinon la tortue avance d'une case . On continue jusqu'à ce que l'un des deux atteint l'arrivée.( sachant qu'il ya 5 cases)
Qui a le plus de chance de gagner?
Écrire un algorithme pour simuler cette expérience.
Voilà mon algorithme:
1 Variables
2 i est_du_Type nombre
3 l est_du_Type nombre
4 r est_du_Type nombre
5 Début_Algorithme
6 l Prend_La_Valeur 0
7 Pour i allant_de 1 a 6
8 Début_Pour
9 r Prend_la_Valeur round(0.5001+5.998*random())
10 Si (r==6) Alors
11 Début_Si
12 l Prend_La_Valeur 1
13 Fin_Si
14 Fin_Pour
15 Si (l==1) Alors
16 Début_Si
17 Afficher "Le lièvre a gagné"
18 Fin_Si
19 Sinon
20 Début_Sinon
21 Afficher "La tortue a gagné"
22 Fin_Sinon
23 Fin_algorithme
Réponse: Algorithme de whims, postée le 02-05-2010 à 21:57:58 (S | E)
A priori ton algorithme fait ce qu'il faut. C'est peut être pas le plus efficace des algorithme du monde mais il répond correctement à l'exercice.
La seule chose que je n'ai pas vérifier c'est sur ta fonction :
round(0.5001+5.998*random())
Est-ce que ça te retourne bien des entiers entre 1 et 6 ? Je te fais confiance.
Réponse: Algorithme de chokr, postée le 02-05-2010 à 22:07:55 (S | E)
Mais en faite ma cousine m'a aidée pour faire cet algorithme mais je ne trouve pas comment elle a fait pour trouver round(0.5001+5.998*random).Est-ce que vous pourrez me proposer un autre algorithme? Merci beaucoup pour votre aide.
Réponse: Algorithme de chokr, postée le 02-05-2010 à 22:18:06 (S | E)
Quelqu'un pourrait m'aider SVP
-------------------
Modifié par lucile83 le 03-05-2010 11:32
Pas d'urgence sur le site.
Réponse: Algorithme de whims, postée le 03-05-2010 à 09:21:10 (S | E)
Si c'est très urgent, il faut poster plus tôt. Les gens dorment le soir .
Pour ta fonction : round(0.5001+5.998*random()). Moi j'aurais également utiliser random() pour générer un chiffre aléatoire mais pour obtenir un nombre entre 0 et 6 j'aurais divisé par 7 puis retiré 1 et enfin j'aurais arrondi -> round(random()/7 -1) ce qui est égale à round(random()/7)-1.
Pour l'algorithme je ne comprends pas pourquoi tu veux en changer. Celui là est vraiment bien.
Réponse: Algorithme de chokr, postée le 03-05-2010 à 12:47:10 (S | E)
Bonjour, whims pour ton aide mais en faite nous le professeur nous a demandé d'utiliser Ran# pour écrire le programme, mais je ne sais pas comment l'utiliser.C'est pour cela, je ne sais pas si le professeur va compter juste mon programme.
Réponse: Algorithme de whims, postée le 03-05-2010 à 13:20:16 (S | E)
Je ne sais pas ce qu'est Ran#.
Tu parles de la fonction pour générer des résultats de dé ?
Ou du langage à utiliser pour écrire l'algorithme ?
Peux-tu m'en parler un peu plus ou me donner un lien qui en parle car sans plus de détail dessus, je ne pourrais pas t'aider plus... Désolée.
-------------------
Modifié par whims le 03-05-2010 16:02
Réponse: Algorithme de chokr, postée le 03-05-2010 à 17:57:39 (S | E)
la touche Ran# donne un nombre choisi au hasard dans l'intervalle [0;1]. Donc pour avoir un nombre au hasard dans l'intervalle [1;7](7 n'est pas compris dans l'intervalle, le crochet est ouvert)il faut faire 6Ran#+1.
Int(6Ran#+1) choisit un nombre au hasard parmi(1;2;3;4;5;6)donc simule un dé. Je pense qu'il faut les utiliser, non? car on a écrit ça dans le cahier de cours.
Réponse: Algorithme de whims, postée le 03-05-2010 à 20:29:16 (S | E)
eh bien oui, c'est parfait. Tu vois, tu n'as aucun problème !
Remplace donc ton round et random par ton int rank et tout sera parfait.
Juste par curiosité, pourrais-tu me dire ce que tu fais comme études ? Car tu me sembles bien jeune pour faire des algorithme comme ça.
Réponse: Algorithme de chokr, postée le 03-05-2010 à 20:34:01 (S | E)
Merci beaucoup, je vais le corriger, je vais voir si ça marche.
Je suis en classe de seconde.
Réponse: Algorithme de fr, postée le 03-05-2010 à 20:47:44 (S | E)
Bonsoir,
En effet, si la fonction Random (ou ran#, peu importe le nom) donne un réel entre 0 et 1 (1 exclu et avec une distribution régulière), pour obtenir une probabilité égale pour tous les chiffres entre 1 et 6, il faut prendre la partie entière de (1+ random*6)
Autre chose, ton algorithme te donne le résultat pour 1 essai, or le problème est de savoir lequel des 2 a la plus grande probabilité de gagner.
Personnellement, je ferai plutôt une boucle avec un nombre assez grand (genre 1000, 10000 ou 100000 selon la puissance de ta machine ...) et j'incrémenterai 2 compteurs : L pour le lièvre et T pour la tortue par exemple, en fonction du résultat du test, puis j'afficherai à la fin de la boucle les nombres L et T (et mieux, divisés par le nombre de boucles effectuées et multiplié par 100 pour avoir directement des pourcentages ...)
Réponse: Algorithme de chokr, postée le 03-05-2010 à 21:25:29 (S | E)
Pourriez vous me dire comment j'écris l'algorithme à la calculatrice. je le fais depuis avant et c'est toujours faux. merci
Réponse: Algorithme de whims, postée le 03-05-2010 à 22:04:39 (S | E)
Je ne peux pas t'aider pour ça, désolée. Je n'ai jamais fais de programme sur calculatrice.
Tu as regarder sur internet ? Il y a souvent de nombreux tutoriaux pour ce genre de chose.
Réponse: Algorithme de chokr, postée le 03-05-2010 à 22:11:01 (S | E)
J'ai postée sur d'autres sites, mais personne ne me répond sauf vous.
Réponse: Algorithme de fr, postée le 03-05-2010 à 22:11:39 (S | E)
Non, je ne connais pas non plus le langage de toutes les calculatrices ...
Autre souci, je viens de relire l'algorithme et tu fais une boucle "Pour i de 1 à 6" (ligne 7) alors qu'il y a 5 cases.
Par contre, je ne sais pas si la tortue est sur la première case au départ ou si elle va sur la première case après le premier jet de dé (s'il est différent de 6)
à toi de vérifier avec l'énoncé exact de l'exercice ...
la boucle que je propose de faire doit inclure les lignes 6 à 22
il faut modifier les lignes 17 et 22 pour incrémenter les compteur respectifs pour le lièvre et la tortue (ne pas mettre 2 fois la même variable L, par contre ...)
PS : la boucle est du type : pour j allant de 1 à n (avec n=1000 par exemple)
PS2 : conseil : mettre le nombre d'itérations dans une constante, comme cela on pourra la changer facilement, tout en calculant les pourcentages de manière exacte ...
Ensuite, pour éviter de continuer à parcourir inutilement les boucles lorsque le lièvre a gagné, on peut interrompre la boucle qui commence ligne 7 lorsque tu positionnes L à 1 ...
Réponse: Algorithme de chokr, postée le 03-05-2010 à 22:20:02 (S | E)
bonsoir, en faite la tortue n'est pas sur la première case, elle va sur la première case après le premier jet de dé (s'il est différent de 6).
Pourquoi trouvez-vous que les lignes 17 et 22 sont fausses? Est-ce que vous pouvez m'expliquer plus S'il vous plaît.
Réponse: Algorithme de fr, postée le 03-05-2010 à 23:42:35 (S | E)
Bonsoir, je ne dis pas que les lignes 17 et 22 sont fausses ...
Je proposais de faire des statistiques avec un certain nombre d'occurrences, pour pouvoir donner des statistiques : qu'en penses-tu ?
Dans ce cas, il ne faut pas afficher le résultat après chaque essai, mais comptabiliser le nombre de fois où la tortue / le lièvre gagnent ...
Donc si la tortue va sur la première case au premier jet de dé, cela veut dire qu'il faut faire 5 lancers de dé différents de 6 pour que la tortue gagne ...
tu peux donc rectifier le ligne 7 en conséquence ...
Sinon, as-tu calculé la probabilité que la tortue gagne ?
(selon ta classe, tu dois pouvoir le faire, si tu as eu des cours de probabilité ...)
Comme la probabilité n'est pas très éloignée de 40 / 60, il faut faire un certain nombre d'essais avant de pouvoir conclure ...
Réponse: Algorithme de foruk, postée le 04-05-2010 à 00:02:50 (S | E)
Bonsoir.
Effectivement, ton programme à l'air d'être incomplet puisqu'on te demande de donner les probabilités. Je pense que la méthode de fr est appropriée.
Si tu as quelques difficultés n'hésites pas à me demander j'essayerai de t'aider.
Réponse: Algorithme de chokr, postée le 04-05-2010 à 06:32:20 (S | E)
Oui merci beaucoup à vous.est-ce que vous pouvez m'aider à le compléter?
Mais le problème c'est que je n'arrive pas à écrire l'algorithme sur ma calculatrice sachant que c'est Graph 35+.
Merci pour votre aide.
<< Forum maths