Bonsoir,
On considère le jeu de nombre suivant :
On choisit un nombre entier entre 1 et 99. À chaque étape, le remplace par la somme des carrés de ses chiffres.
Exemple: je choisis n = 7.
Étape 1: 49.
Étape 2: 97...
1) Poursuivre la procédure pour n=7 [FAIT].
2) Recommencer avec n= 4. [FAIT]
4) Emettre une conjecture sur les suites de nombres obtenus.
Ma réponse : Ces suites aboutissent à une boucle ?
5 Voici un algorithme [BESOIN D'AIDE POUR CES QUESTIONS] :
Variables
q, r, n et s
Entrée
Saisir le nombre entier n
Traitement
Affecter 0 à s
Tant que n>0
q prend la partie entière de n/10
r prend la valeur n- 10q
s prend la valeur s + r^2
n prend la valeur q
Fin du Tant que
Sortie
Afficher s
OK, donc j'ai testé avec 403915 comme vous me l'aviez conseillé. Voilà ce que j'obtiens :
n = 403915
s = 0
q = n/10 = 403915/10 = 40391
r = n-10q = 403915-10*40391= 5
s = 0 + 5^2 = 25
n = 40391
...Mais je ne comprends toujours pas comment expliquer et compléter l'algorithme... :(
Il y a "tant que" n>0 dans ton algorithme. Or n=40391 et il me semble que c'est un nombre strictement positif ! Donc tu dois recommencer tout ce qu'il y a entre la ligne "Tant que" et la ligne "fin du tant que", autant de fois qu'il le faudra pour que n devienne 0.
Fais-le !
Je n'arrive jamais à n=0 . n est toujours de plus en plus petit (0.04>0.004>0.0004...) mais n'arrive jamais a 0
Tu devrais le faire vraiment tourner (en mode pas à pas si besoin)
le voilà dans algobox (tu peux le copier/coller dans algobox en mode éditeur de texte, ou bien directement en ligne dans proglab )
VARIABLES
q EST_DU_TYPE NOMBRE
r EST_DU_TYPE NOMBRE
n EST_DU_TYPE NOMBRE
s EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
LIRE n
s PREND_LA_VALEUR 0
TANT_QUE (n > 0) FAIRE
DEBUT_TANT_QUE
q PREND_LA_VALEUR floor(n/10)
r PREND_LA_VALEUR n-10*q
s PREND_LA_VALEUR s+r*r
n PREND_LA_VALEUR q
FIN_TANT_QUE
AFFICHER s
FIN_ALGORITHME
Ah oui zut ! Donc,je rectifie : n = bien 0 ^^ Donc, quel est le rôle de cet algorithme ? Atteindre n=0 ?
le role d'un algorithme est de donner un résultat, et de l'afficher
ici le résultat c'est S
que représente ce "S" ?
que représentent chacune des valeurs successives de r ?
(S c'est la somme des carrés de ces valeurs là)
Je comprends vraiment pas...je trouve S=110 alors que tous mes autres résultats sont nuls. Et je ne sais toujours pas ce que je dois expliquer. Je suis vraiment perdue.
il doit certainement y avoir un rapport entre cette question sur l'algorithme et ce qu'on te demande question 1 !!!
par exemple, sans chercher un nombre n aussi élevé que celui de 403915 si tu rentres n = 97 ça fait quoi dans ton algo "exécuté à la main" ?
et ça fait quoi par rapport aux résultats de ta question 1 ?
Voici mes calculs à la main :
1) 7^2 =49
4^2 + 9^2 = 97
9^2 + 7^2 = 130
1^2 +3^2 + 0 = 10
1^2 + 0 = 1
1^2=1
1^2=1
...
Et avec l'algo :
n=97
s=0
q= n/10= 97/10= 9.7
q= 9
r= n-10q= 97-10*9=7
s=s+r^2=0+7^2=49
n=q=9
n=9>0
q=0
r= 9-10*0=9
s= 49+9=58
n=0
S=58 ?
Je vois toujours pas le rapport...
question 1
97
9^2 + 7^2 = 130 OK (et je m'arrête là)
algorithme avec n = 97 :
ton dernier calcul de s est faux
r = 9 et s = 49 donne
s prend la valeur 49 + 9*9 = ??? ça ne fait pas 58 !!
et il faut être particulièrement PEU observateur pour ne pas voir ce que sont les valeurs successives de r au cours de l'exécution de l'algorithme !!!
et quand on calcule une valeur S par une boucle contenant un "S prend la valeur S + r*r"
avec successivement (en partant de n = 403915) les valeurs 5 puis 1 puis 9 puis ...
on calcule en fait (si on prend bien soin de ne pas effectuer les opérations) :
0 + 5*5 puis à partir de cette valeur (0 + 5*5) :
(0 + 5*5) + 1*1 puis à partir de cette valeur ((0 + 5*5) + 1*1) :
((0 + 5*5) + 1*1) + 9*9
etc
on calcule en fait 0 + 5*5 + 1*1 + 9*9 + ...
et la même remarque sur le manque total de don d'observation dans le cadre de ce problème là
(de l'ensemble de cet exo dont l'algorithme est tiré, de ne pas voir le lien entre ce que calcule l'algorithme et ce dont parle l'exo en général)
Donc,pour la question 5)a l'algo permet de trouver s qui correspond à la somme des digits au carré de n ?
bein oui !!
il affiche la somme des carrés des digits de n
question 5b :
pour modifier l'algorithme pour lui faire vérifier (sur autant d'exemples qu'on veut) la conjecture de la question 1 il faut recommencer le même calcul à partir du résultat.
c'est à dire mettre cet algorithme tout entier dans une boucle qui recommence le même calcul en repartant, en guise de valeur de n, de la valeur de s obtenue.
jusqu'à ... plus soif ou que la conjecture de la première partie soit satisfaite
essaye déja de réaliser cet algorithme qui réalise ce que tu as fait "à la main" dans les questions 1 à 4
c'est à dire qui quand on lui fournit n = 7 affiche successivement :
49
97
130
10
1
et quand on lui fournit n = 4 affiche
16
37
58
89
145
42
20
4
etc
en fait il faudrait améliorer la conjecture en :
"on finit toujours par tomber sur la valeur 1 ou la valeur 4"
(ça va simplifier énormément l'écriture de l'algorithme, plutôt que de détecter si "ça boucle" sans savoir à priori sur quoi)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :