Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Completer un algorithme

Posté par
xxDontknowxx5980
21-12-14 à 23:13

                  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


a) Expliquer le rôle de cet algorithme [aide svp]
b) Compléter cet algorithme afin qu'il puisse valider la conjecture émise

Merci !

Posté par
weierstrass
re : Completer un algorithme 22-12-14 à 09:39

Bonjour, teste sur un nombre, par exemple 403915 et regarde ce que fait l'algorithme...

Posté par
xxDontknowxx5980
re : Completer un algorithme 22-12-14 à 16:36

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... :(

Posté par
pythamede
re : Completer un algorithme 22-12-14 à 17:10

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 !

Posté par
xxDontknowxx5980
re : Completer un algorithme 22-12-14 à 17:33

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

Posté par
mathafou Moderateur
re : Completer un algorithme 22-12-14 à 17:36

partie entière de

Posté par
Glapion Moderateur
re : Completer un algorithme 22-12-14 à 17:38

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

Posté par
xxDontknowxx5980
re : Completer un algorithme 22-12-14 à 17:39

Ah oui zut ! Donc,je rectifie : n = bien 0 ^^  Donc, quel est le rôle de cet algorithme ? Atteindre n=0 ?

Posté par
xxDontknowxx5980
re : Completer un algorithme 22-12-14 à 17:48

?

Posté par
mathafou Moderateur
re : Completer un algorithme 22-12-14 à 17:48

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

Posté par
xxDontknowxx5980
re : Completer un algorithme 22-12-14 à 18:06

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.

Posté par
mathafou Moderateur
re : Completer un algorithme 22-12-14 à 18:22

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 ?

Posté par
xxDontknowxx5980
re : Completer un algorithme 22-12-14 à 19:31

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

Posté par
xxDontknowxx5980
re : Completer un algorithme 22-12-14 à 19:51

?

Posté par
mathafou Moderateur
re : Completer un algorithme 22-12-14 à 23:20

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)

Posté par
xxDontknowxx5980
re : Completer un algorithme 23-12-14 à 00:27

Donc,pour la question 5)a l'algo permet de trouver  s qui correspond à la somme des digits au carré de n ?

Posté par
mathafou Moderateur
re : Completer un algorithme 23-12-14 à 01:12

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 :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1742 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 !