Inscription / Connexion Nouveau Sujet
Niveau terminale
Partager :

algo

Posté par
morti
15-09-12 à 22:53

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

Posté par
mathafou Moderateur
re : algo 15-09-12 à 23:03

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).

Posté par
morti
suite algo 15-09-12 à 23:32

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

Posté par
mathafou Moderateur
re : algo 15-09-12 à 23:52


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 !)

Posté par
morti
re : algo 15-09-12 à 23:57

d'accord bon bah merci beaucoup et bonne soiree a vous.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1741 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !