coucou j'aimerais savoir si je pourrais avoir un peu d'aide. En effet j'ai un peu de mal avec les algorithmes et j'ai un exercice a faire sur lequel je dois "ecrire un algorithme permattant de determiner a partir de quel rang le terme Un appartient a ]3-r,3+r[ avec r un reel strictement positif fixe" le suite est Un=(3n+1)/(n+1)j'ai reussis a en creer un qui fonctionne sur calculatrice mais imposible de la faire fonctionner sur algobox et pour des toutes petites valeur c'est imposible avec une calculatrice. Merci d'avance. Bonne soiree
Bonjour,
qu'as tu mis dans Algobox ?
pour les petites valeurs de r, n va devenir très grand et l'algorithme va tourner un sacré paquet de temps (voire des heures si r est vraiment petit)
a mon avis Algobox ou la calculette vont avoir autant de mal, et je pencherais même en faveur de la calculette !
si par exemple tu te fixes un nombre de boucles de 10000, ça te donne
Un= 30001/10001 = 2.999800 en d'autre termes, cela veut dire que pour r < 0.0002 il faudra plus de 10000 boucles !
donc n'éspère pas obtenir des résultats avec des r "vraiment petit"
reste que avec des r "raisonnables" l'algorithme devrait tourner aussi bien sur Algobox que sur la calculette ...
s'il ne marche pas sur Algobox, c'est que tu as fait une erreur dans l'algorithme (dans sa traduction pour Algobox).
Je pense aussi que j'ai fais un erreur sur algobox, sur l'algo j'ai mis:
VARIABLES
n est du type nombre
r est du type nombre
u est du type nombre
DEBUT ALGO
n prend la valeur 0
u prend la valeur 1
afficher "entrer la valeur initiale de r="
lire r
Tant que (U<=3-r) faire
debut tant que
n prend la valeur n+1
u prend la valeur (3n+1)/(n+1)
fin tant que
afficher n
FIN ALGO
en plus mon pbl c'est qu'il faut que je trouve les valeurs de r=10^3 et r=10^6
je lui ais mis
u prend la valeur (3*n+1)/(n+1)
(il ne voulait pas de "3n+1" apparemment)
et ça fonctionne très bien sur des valeurs "raisonnables" de r
r = 10-3 = 0.001 est OK donne 2000
r = 10-6 par contre me sort le message "trop de boucles"
normal ! il faut 2 millions de boucles avant de s'arrêter !!
si tu veux aller plus loin, il faut résoudre le problème de façon théorique c'est à dire résoudre mathématiquement l'inégalité
(3n + 1)/(n + 1) > 3 - r
et "l'algorithme" se contente de calculer la valeur de n, solution de cette inéquation, en fonction de la valeur entrée de r (aucune boucle là dedans)
une forme de triche ?
(d'un autre côté faire mouliner un programme sur quelques millions de boucles pour un problème qui se résoud de façon exacte mathématiquement, c'est du gachis !)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :