Bonjour,je travaille sur la fonction random() et je souhaiterais réaliser un algorithme avec une boucle qui s'arrête pour un résultat appartenant a l'intervalle 0.49 0.51 ( pour trouver des resultats proches de 1/2)
J'ai essayé avec algobox mais je n'arrive pas a trouver de condition pour stopper ma boucle tant que
Et sur ma Ti , même problème la boucle pour ne peut pas fonctionner car je veux qu'elle s'arrete quand mon x appartient a l'intervalle .. Quelqu'un a une idée ?
Merci
Bonjour
Il faut mettre une condition du type "tant que x n'appartient pas à [0,49;0,51], faire un nouveau tirage". La boucle s'arrêtera d'elle-même dès lors que l'on atteint un nombre qui satisfait la condition.
Merci de répondre si vite, mais je n'arrive pas a trouver le language pour tant que x n'appartient pas ..
Et si par exemple je lance ma boucle tant que x appartient a o;0.49 ou 0.51 1 , cela ne fonctionne pas non plus, je ne sais pas comment sortir de la boucle
et apres je mets une instruction : afficher x , et c'est tout ?
Euh, la valeur absolue est bien codée par abs() ?
J'ai essayé comme ca, mais abs ne semble pas vouloir fonctionner
VARIABLES
x EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
x PREND_LA_VALEUR F1(x)
TANT_QUE (abs(x-0.5))>0.1 FAIRE
DEBUT_TANT_QUE
x PREND_LA_VALEUR F1(x)
FIN_TANT_QUE
AFFICHER x
FIN_ALGORITHME
il faut également mettre les instructions qui permettent de calculer X
oui valeur absolue c'est abs(), du moins dans le langage Algobox et sans doute sur pas mal de calculatrices.
Merci
J'ai rentré ma fonction F1 avec F1(x)= random x
L'algorithme m'indique une erreur a la première ligne de ma boucle tant que
Ca y est mon algorithme fonctionne et me donne la valeur de x approchée de 1/2 , je fais une capture pour voir si je n'ai pas fait d'erreur
VARIABLES
2 x EST_DU_TYPE NOMBRE
3 a EST_DU_TYPE NOMBRE
4 DEBUT_ALGORITHME
5 x PREND_LA_VALEUR F1()
6 TANT_QUE (abs(x-0.5)>0.01) FAIRE
7 DEBUT_TANT_QUE
8 x PREND_LA_VALEUR F1(x)
9 a PREND_LA_VALEUR x-0.5
10 FIN_TANT_QUE
11 AFFICHER "x="
12 AFFICHER x
13 FIN_ALGORITHME
Fonction numérique utilisée :
F1(x)=random(x)
Rentre random() pour F1(x) ou bien met directement la fonction.
Et puis j'ai l'impression qu'Algobox n'accepte pas directement la fonction abs dans le Tant que
Voilà un programme qui marche :
VARIABLES
x EST_DU_TYPE NOMBRE
y EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
y PREND_LA_VALEUR 0.5
TANT_QUE (y > 0.01) FAIRE
DEBUT_TANT_QUE
x PREND_LA_VALEUR random()
y PREND_LA_VALEUR abs(x-0.5)
FIN_TANT_QUE
AFFICHER x
FIN_ALGORITHME
nos programmes se ressemblent. je n'ai pas compris à quoi te servait la variable a, tu lui donne une valeur mais tu ne l'utilises nul part.
oui, pas fait exprès, je voulais mettre a dans la valeur absolue mais j'ai oublié en cour de route ^^
non ça ne donne pas 0. Copie/colle le mien en mode d'édition "éditeur de texte" et tu verras qu'il donne à chaque fois un nombre à moins 1/100 de 0.5
Oui, tu crées une nouvelle variable N que tu incrémentes à chaque fois, comme ça tu verras le nombre d'essais qu'il a fait.
VARIABLES
x EST_DU_TYPE NOMBRE
y EST_DU_TYPE NOMBRE
N EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
y PREND_LA_VALEUR 0.5
N PREND_LA_VALEUR 0
TANT_QUE (y > 0.01) FAIRE
DEBUT_TANT_QUE
x PREND_LA_VALEUR random()
y PREND_LA_VALEUR abs(x-0.5)
N PREND_LA_VALEUR N+1
FIN_TANT_QUE
AFFICHER "x ="
AFFICHER* x
AFFICHER "obtenu pour "
AFFICHER N
AFFICHER* " itérations"
FIN_ALGORITHME
Et par exemple, ça donne :
***Algorithme lancé***
x =0.49582745
obtenu pour 87 itérations
***Algorithme terminé***
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :