Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
Discussion fermée
#1 04-02-2018 18:48:09
- poisson
- Invité
Suites
Bonjour, je me trouve face à une question d'un exercice que je n'arrive pas à résoudre. La voilà:
Expliquer pourquoi l'algorithme ci-contre, censé donner le premier rang à partir duquel Un-Vn<0, est incorrect et le modifier pour qu'il fonctionne
n: entier
u,v : réels
Donner à u la valeur 24
Donner à v la valeur 6
Donner à n la valeur 0
Tant que u-v<0 faire
Donner à u la valeur (u+v)/2
Donner à v la valeur u*v
Donner à n la valeur n+1
Fin tant que
Afficher la valeur de n
Je pense que l'erreur est que lors du calcul de v, u prend la valeur du calcul précédent mais je ne sais pas comment résoudre ça.
Merci de l'aide
#2 04-02-2018 20:52:15
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 405
Re : Suites
Bonsoir,
Pourquoi l'algorithme est incorrect (ou sans objet) ?
Si on pose comme convention :
u0 = 24
v0=6
alors
u1=(24+6)/2=15
V1=6*15 =90
C'est déjà vrai... et ça reste vrai jusqu'à n=9, par contre à partir de 10, ça devient apparemment faux...
Pour t'en convaincre, rajoute juste entre Fin Tant que et Donner à n la valeur n+1 , les lignes :
Afficher la valeur de u
Afficher la valeur de v
J'ai pas mal d'autres essais qui n'ont rien donné d'intéressant, par exemple [tex] v=\sqrt{u\times v}[/tex] : u étant la moyenne arithmétique, alors je m'étais dit que peut-être v serait la moyenne géométrique, mais non...
J'avais eu une autre idée, mais vu comme la question est posée, la correction de U - V<0 en U-V=0 (qui semble fonctionner avec le nombre de décimales du logiciel) ne peut pas être la bonne puisqu'on demande à partir de quel rang de n, on a [tex]U_n-V_n<0[/tex]...
Donc, question :
Il n'y a rien d'autre dans ton énoncé ? Pas même définition de un = ? et vn = ? par exemple...
@+
Hors ligne
#3 04-02-2018 22:00:23
- Fred
- Administrateur
- Inscription : 26-09-2005
- Messages : 7 352
Re : Suites
Bonjour,
Je pense, même sans connaitre les suites l'expression des suites $(u_n)$ et $(v_n)$ comme le souligne Yoshi,
que l'erreur vient de la condition dans le Tant Que.
Regarde ce qui se passe lorsqu'on exécute l'algorithme. On donne à u la valeur 24, et à v la valeur 6. Donc u-v=18>0.
Ainsi, on ne rentre même pas dans le Tant Que puisque la condition n'est pas remplie. L'algorithme retourne donc n=0, ce qui n'est pas correct puisque $u_0=24$ et $v_0=6$.
F.
Hors ligne
#4 05-02-2018 07:39:35
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 405
Re : Suites
Bonjour,
@Fred.
Pas vu...
parce que j'ai travaillé avec une boucle for, assorti d'une condition de sortie de ma boucle, et de l'affichage des valeurs u et v :
print (u,v)
if u<v:
break
Mais ce n'était jamais vrai, et il ne fallait pas aller très loin, parce que u et v pour Python devenaient infinis (e216) !
@+
Hors ligne
#5 05-02-2018 11:02:40
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 17 405
Re : Suites
Re,
Encore un qui se fiche du monde...
Tout d'abord, il fournit un énoncé incorrect :
* Tant que u-v>=0 et non Tant que u-v<0...
* Ensuite [tex]v=\sqrt{u*v}[/tex] et non v =u*v, moyenne géométrique comme pressenti un temps
Même pas foutu de proposer le même énoncé sur deux sites différents : encore un qui mange (ou essaie de manger) à tous les râteliers
Même pas la politesse de venir dire merci pour le temps qu'on y a passé...
Le crossposting est vraiment une plaie !!!
cf : https://www.ilemaths.net/sujet-algorithme-774173.html
@+
Hors ligne
Pages : 1
Discussion fermée







