Algobox, problème pour boucles
Fermé
galaxilobby
Messages postés
4
Date d'inscription
samedi 5 septembre 2015
Statut
Membre
Dernière intervention
5 septembre 2015
-
Modifié par galaxilobby le 5/09/2015 à 16:08
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 5 sept. 2015 à 16:49
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 5 sept. 2015 à 16:49
A voir également:
- Ce programme est écrit en python il construit un mot secret
- Chanteur anglais cheveux bouclés - Forum Musique / Radio / Clip
- Le fichier contient un programme écrit en python. le programme construit un mot secret mais il ne l'affiche pas. modifiez ce programme afin que à chaque itération de la boucle : la variable a augmente de 2 la variable b diminue de 1 ajoutez une instruction pour faire afficher le mot secret construit. quel est ce mot secret ? ✓ - Forum Python
- Algobox ² ✓ - Forum Programmation
- Définir des variables par itération ✓ - Forum Python
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
5 sept. 2015 à 15:42
5 sept. 2015 à 15:42
Bonjour,
Dans l'aide d'Algobox (menu Aide > Aide), il est écrit à la section 3.3 :
Dans l'aide d'Algobox (menu Aide > Aide), il est écrit à la section 3.3 :
Avertissement : le nombre d'itérations des boucles est limité à 500000 pour des raisons de sécurité.Donc si tu as ce message, c'est que tu as dépassé les 500000 itérations, ce qui est probablement dû à une erreur de conception de l'algorithme.
Modifié par galaxilobby le 5/09/2015 à 16:08
5 sept. 2015 à 16:33
En plus il y a des balises de codes <code></code> pour les mettre en forme...
Informatiquement, ça plante parce que la valeur de a ne dépasse jamais 20000, en tout cas pas en moins de 500000 tours (ce qui correspond à la valeur de i).
Mathématiquement, c'est normal, vu que a ne peux jamais atteindre 20000.
Ce que tu fais, c'est le calcul de la suite :
u(0) = 7000
u(n+1) = 0.8*u(n)+4000
La solution générale étant u(n) = 20000 - 13000*(4/5)^n
Même si asymptotiquement cette suite converge vers 20000, elle sera toujours strictement en dessous car (4/5)^n est toujours strictement positif.
Donc tu ne pourras jamais atteindre ou dépasser 20000, ta boucle tourne à l'infini et après 500000 essais AlgoBox se protège et interrompt le programme...
5 sept. 2015 à 16:40
Modifié par KX le 5/09/2015 à 16:52
Modifié par KX le 5/09/2015 à 16:53
Le programme ne fait rien après la boucle, donc même si elle se terminait, il n'y a aucun résultat à afficher, du coup je sais pas ce que tu veux obtenir...
Remarque : ça ne servait à rien de changer la formule, j'ai utilisé la solution pour montrer l'erreur mathématique, mais informatiquement la suite est bonne.