askk Posté(e) le 25 septembre 2014 Signaler Posté(e) le 25 septembre 2014 Bonsoir pourriez-vous m'aider mon devoir maison il me manque une questions à laquelle je n'arrive pas. alors: Élaborer un algorithme permettant de calculer un pour un entier naturel n donné et donner une valeur approché de u500 et de u1000. a) u1= 0 et n * , un+1 = n+1/n * un Merci pour votre aide.
E-Bahut Barbidoux Posté(e) le 25 septembre 2014 E-Bahut Signaler Posté(e) le 25 septembre 2014 Question : ta suite est bien comme tu l'as écrit un+1=n+un/n ou bien est-ce un+1=(n+1/n)*un ou encore un+1=n+1/(n*un)
askk Posté(e) le 25 septembre 2014 Auteur Signaler Posté(e) le 25 septembre 2014 un+1=(n+1/n)*un excusez moi..
E-Bahut Barbidoux Posté(e) le 25 septembre 2014 E-Bahut Signaler Posté(e) le 25 septembre 2014 incohérent car si u1=0 alors u1=(1+1/1)*u0=0 u2=(1+1/2)*u1=0 tous les termes de un valent 0
askk Posté(e) le 25 septembre 2014 Auteur Signaler Posté(e) le 25 septembre 2014 excusez-moi en faite u1= 1
Étienne9 Posté(e) le 25 septembre 2014 Signaler Posté(e) le 25 septembre 2014 Bonsoir, Il n'y a pas un autre soucis ? Si u(n+1) = (n+1/n) ^ u(n) Alors si on veut u(1) alors n= 0 et donc on a 1/0 et c'est indéfini ! Je n'avais pas vu. Cela commence à u1.
E-Bahut Barbidoux Posté(e) le 26 septembre 2014 E-Bahut Signaler Posté(e) le 26 septembre 2014 u1=1 u2=(2+1/2)*u1=2.5 u3=(3+1/3)*u2=8.33 Agorithme lire n u prend la valeur 1 pour k allant de 1 à n-1 u prend l valeur (k+1/k)*u fin de pour afficher u qq problèmes : la valeur de u augmentant très rapidement dépasse souvent les capacité des machines sur lequel cet algorithme peut être programmé (n égal au plus à 170 en ALGOBOX). Dès que la valeur de n devient importante la valeur de 1/n devient négligeable devant celle de n et la suite se comporte comme un+1=un*n ce qui est l’expression de n! =1*2*3*4*…..*n=(factiorielle n). Donc valeurs approchées de u500=500!=1.22*10^(1134) et u1000=4.02*10^(2567)
Étienne9 Posté(e) le 26 septembre 2014 Signaler Posté(e) le 26 septembre 2014 Bonjour, Si n dépasse la capacité pour un réel, il suffit d'utiliser un autre type, ou de représenter le nombre sous forme d'une chaîne de caractères ou de fabriquer nous-même notre type de nombre en utilisant les listes... Mais le temps d'exécution sera plus long. Le mieux c'est faire du téta de 1, en donnant une formule non récursive.
Étienne9 Posté(e) le 26 septembre 2014 Signaler Posté(e) le 26 septembre 2014 Sinon tu peux l'écrire en récursif, c'est plus facile. La fonction qui fait tout le boulot est u, main est la fonction lancée au démarrage. // Préconditions: n 1 sinon "BOUM". fonction avec retour réel u(entier n) Début si (n == 1) alors retourner 1.0; sinon retourner (n+(1/n))*u(n-1); fin si Fin fonction sans retour main() Début entier n=0; tant que (n < 1) faire Lire(n); si (n<1) alors afficher "Veuillez saisir une nouvelle valeur, n doit être >=1"; fin si fin tant que Afficher(u(n)); Fin
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.