Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme

Posté par Profil Tulipe18 08-03-15 à 17:06

Bonjour,

J'ai un exercice à résoudre et je n'ai pas su faire la 2e question ou on me demande d'écrire un programme en langage codé.
Voici l'énoncé:
Un processus aléatoire affiche dans chacune des 4 cases d'un écran le nombre 1 ou -1.
1)Calculer la probabilité que la somme des 4 nombres soit égale à 0.
2) Ecrire un programme en langage codé qui permette de rentrer le nombre N d'expériences à réaliser et donne la fréquence X de l'événement "Somme nulle".

Pour la 1ère question, après avoir fait un arbre pondéré, j'ai trouvé que la somme S appartient à {-4; -2; 0; 2; 4}
Et que P(S=0) = 6/16 = 0.375.
Jusque là, pas de soucis.

Pour la 2ème question, déjà, que veut dire un programme en langage codé? Est-ce un algorithme?
D'après l'arbre pondéré, j'ai trouvé que le nombre de fois où S = 0 est de 6 fois: (1;1;-1;-1) ; (1;-1;1;-1); (1;-1;-1;1); (-1;1;1;-1); (-1,1,-1,1); (-1;-1;1;1)

Sachant que je n'y comprends pas grand chose en algorithme, voici mon essai:

Variables: F, I, N, A, B, C, D, S
Début:
F prend la valeur 0
I prend la valeur 0
Tant que I<N Faire:
A prend la valeur 1 ou -1 au hasard
B prend la valeur 1 ou -1 au hasard
C prend la valeur 1 ou -1 au hasard
D prend la valeur 1 ou -1 au hasard
S prend la valeur A+B+C+D
Si S=0
Alors
F prend la valeur F+1
Fin si
Fin tant que
Afficher F/N
Fin algorithme

Merci d'avance pour les aides et réponses que je recevrai!

Posté par
Glapion Moderateur
re : Algorithme 08-03-15 à 17:26

Bonjour, il est pas mal ton algorithme mais tu a oublié de mettre une instruction I prend la valeur I+1 (tel quel, I garde toujours la valeur 0 et on ne sort jamais de la boucle TantQue)
tu as également oublié de donner une valeur à N (ou de demander une valeur à l'utilisateur : LIRE N)

Sinon, fais le tourner, tu verras bien si ça sort des valeurs autour de 0.375 pour des N assez grands.

Posté par Profil Tulipe18re : Algorithme 08-03-15 à 17:41

Merci pour ta réponse.
Et comme ça c'est bon?

Variables: F, I, N, A, B, C, D, S,
Début:
F prend la valeur 0
I prend la valeur 0
Lire N
Tant que I<N Faire:
A prend la valeur 1 ou -1 au hasard
B prend la valeur 1 ou -1 au hasard
C prend la valeur 1 ou -1 au hasard
D prend la valeur 1 ou -1 au hasard
S prend la valeur A+B+C+D
Si S=0
Alors
F prend la valeur F+1
I prend la valeur I+1
Fin si
Afficher F/N
Fin algorithme

Comment je fais tourner cet algorithme?
Puis-je le faire avec la calculatrice TI82? Si oui, comment traduire cet algorithme en langage TI?

Posté par
Glapion Moderateur
re : Algorithme 08-03-15 à 17:46

le I prend la valeur I+1 , il faut le mettre dans tous les cas et pas seulement dans le cas ou S = 0
donc après le FinSI

il te manque un FinTantQue aussi (avant le Afficher F/N)

oui tu peux le faire tourner sur une calculatrice ou sous algobox. il faut que tu transcrives chaque instruction dans le langage de ta calculatrice. Tel quel, il est plutôt plus proche d'algobox.

Posté par Profil Tulipe18re : Algorithme 08-03-15 à 18:17

Après correction de ce que tu m'as signalé, j'ai essayé de faire tourner cet algorithme sur algobox comme suit:

Variables:
F est du type nombre
I est du type nombre
N est du type nombre
A est du type nombre
B est du type nombre
C est du type nombre
D est du type nombre
S est du type nombre
Début algorithme:
F prend la valeur 0
I prend la valeur 0
Lire N
Tant que (I<N) Faire
Début tant que
A prend la valeur 1 ou -1 au hasard
B prend la valeur 1 ou -1 au hasard
C prend la valeur 1 ou -1 au hasard
D prend la valeur 1 ou -1 au hasard
S prend la valeur A+B+C+D
Si (S=0) Alors
Début Si
F prend la valeur F+1
Fin si
I prend la valeur I+1
Fin Tant que
Afficher F/N
Fin algorithme

En lançant l'algorithme, il m'affiche ce message:
***L'algorithme contient une erreur : impossible de le lancer***
***Vérifiez la syntaxe des affectations et des conditions***

Qu'est-ce qui ne va pas?

Posté par
Glapion Moderateur
re : Algorithme 08-03-15 à 19:14

plein de choses
A prend la valeur 1 ou -1 au hasard c'est pas une instruction algobox, utilise l'instruction ALGOBOX_ALEA_ENT(0,1) qui va te donner aléatoirement 0 ou 1 et transforme le en -1 ou 1 en faisant 2*ALGOBOX_ALEA_ENT(0,1)-1

Si (S=0) Alors ne marche pas, c'est SI (S == 0) ALORS

Bon, et puis respecte les syntaxes, il y a des instructions qui ont des _ comme PREND_LA_VALEUR ou FIN_TANT_QUE

ton Tant que (Imettre plutôt
TANT_QUE (I<=N) FAIRE
DEBUT_TANT_QUE
...........
FIN_TANT_QUE

Posté par Profil Tulipe18re : Algorithme 08-03-15 à 19:59

Je découvre Algobox alors je ne connais pas toutes les syntaxes. Pour les _ entre les mots, ils y étaient puisqu'ils se mettent automatiquement.
J'ai refais le test et là apparemment il reconnait ce langage puisqu'il me demande d'entrer une valeur de N. J'ai mis 16 et ça mouline depuis tout à l'heure. J'attends peut-être que ça met un peu de temps pour avoir le résultat.

Par contre, comme cet exercice est un DM, dois-je l'écrire sur ma feuille en langage algobox ou puis-je le faire comme je vous l'ai mis plus haut, bien sûr en corrigeant mes fautes (avec par exemple A prend la valeur 1 ou -1 au hasard).
Je ne sais pas ce qu'on veut dire par un programme en langage codé, est-ce un algorithme en utilisant un logiciel comme algobox?

(J'ai vérifie le test d'algobox, ça mouline encore, il ne veut pas afficher le résultat. Est-ce normal?

En tous les cas, merci beaucoup pour ton aide.

Posté par
Glapion Moderateur
re : Algorithme 08-03-15 à 22:41

oui un programme en langage codé, c'est un algorithme en utilisant un logiciel comme algobox.

ça ne peut pas mouliner aussi longtemps ! il y a donc un problème. Si tu me redonnes ta nouvelle syntaxe, je te dirais où.

Posté par Profil Tulipe18re : Algorithme 08-03-15 à 22:59

Donc sur ma feuille, il suffit que je recopie exactement ce que j'ai fait sur algobox.
Jusqu'à présent, ça mouline encore, donc ne fonctionne pas.
Voici exactement ce que j'ai fait:

VARIABLES
F EST_DU_TYPE NOMBRE
I EST_DU_TYPE NOMBRE
N EST_DU_TYPE NOMBRE
A EST_DU_TYPE NOMBRE
B EST_DU_TYPE NOMBRE
C EST_DU_TYPE NOMBRE
D EST_DU_TYPE NOMBRE
S EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
F PREND_LA_VALEUR 0
I PREND_LA_VALEUR 0
LIRE N
TANT_QUE (I<=N) FAIRE
DEBUT_TANT_QUE
A PREND_LA_VALEUR 2*ALGOBOX_ALEA_ENT(0,1)-1
B PREND_LA_VALEUR 2*ALGOBOX_ALEA_ENT(0,1)-1
C PREND_LA_VALEUR 2*ALGOBOX_ALEA_ENT(0,1)-1
D PREND_LA_VALEUR 2*ALGOBOX_ALEA_ENT(0,1)-1
S PREND_LA_VALEUR A+B+C+D
SI (S==0) ALORS
DEBUT_SI
F PREND_LA_VALEUR F+1
FIN_SI
I PREND_LA_VALEUR I+1
FIN_TANT_QUE
AFFICHERCALCUL F/N
FIN_ALGORITHME

Posté par
Glapion Moderateur
re : Algorithme 08-03-15 à 23:05

Si, ça marche très bien.
essaye le dans proglab si tu veux : ça marche très bien
tu peux le copier/coller tel quel. Même avec N= 10000, la réponse est presque instantanée.

par contre en local, si tu utilises une vieille version d'algobox, il ne va pas aimer le AFFICHERCALCUL

Posté par Profil Tulipe18re : Algorithme 08-03-15 à 23:29

J'utilise AlgoBox0.9 que j'ai téléchargé récemment. J'ai réessayé ça mouline toujours. Par contre j'ai essayé avec proglab (que je ne connaissais pas) et ça marche, je trouve pour N=10000, 0.381
Un grand merci pour ton aide et le temps que tu m'as consacré.

Posté par Profil Tulipe18re : Algorithme 08-03-15 à 23:44

Ça y est ça fonctionne aussi sur algobox. Pourtant je n'ai rien fait de plus. Un petit caprice
Ça ne lui a peut être pas plus que je passe par proglab, il a compris que je pouvais me passer de lui alors il a cédé
MERCI ENCORE

Posté par
Glapion Moderateur
re : Algorithme 09-03-15 à 00:00



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 1742 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 !