Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algobox

Posté par
alexhdmt
26-01-23 à 19:27

Bonjour, je viens d'écrire un algorithme en lien avec un exercice sur AlgoBox pour une raison qui m'échappe, l'algorithme ne fonctionne pas. Pourriez-vous m'aider à savoir d'où vient le problème?

Algobox

Posté par
Leile
re : Algobox 26-01-23 à 19:32

bonjour,
Quel était l'exercice ?
que doit faire ton algorithme ?
Il ne fonctionne pas : c'est à dire ? tu as un message d'erreur ?
ou bien tu n'obtiens pas les résultats attendus ?

Posté par
alexhdmt
re : Algobox 26-01-23 à 19:36

L'énoncé comment par "On étudie l'algorithme suivant:"
Puis "1.On exécute cet algorithme avec la valeur u=12 en entrée"
Or quand je lance l'algorithme ci-dessus, il ne passe rien. Seul le message:
"***Lancement de l'algorithme***" est visible.

Posté par
Leile
re : Algobox 26-01-23 à 19:46

as tu essayé avec


SI   (u%2==0)      (avec deux fois =  pour la condition  )   ?

Posté par
alexhdmt
re : Algobox 26-01-23 à 19:48

Ça y est, ça marche! Merci beaucoup!

Posté par
Leile
re : Algobox 26-01-23 à 19:51

je t'en prie  

Posté par
alexhdmt
Algorithme 27-01-23 à 09:47

Bonjour,
"On étudie l'algorithme suivant:"
"1. On exécute cet algorithme avec la valeur u=12 saisie en entrée.
a) Quelle est la valeur de p affichée en sortie?
2.Exécuter l'algorithme avec u=14, puis u=100. Indiquer dans chaque cas la valeur de p affichée en sortie.
3.a) Trouver un nombre u saisi en entrée tel que la valeur affichée en sortie soit p=10.
b)De façon plus générale, n est un nombre entier naturel non. Trouver un nombre u saisi en entrée tel que la valeur affichée en sortie soit p=n."

A la question 1, j'ai répondu que p=10. Or ce résultat me parait étonnant par rapport à la question 3. Et je ne comprends absolument pas la question 3.b) car comme p représente le nombre d'itérations exécutées, alors p est toujours égal à un nombre entier naturel non nul?
Merci pour votre aide!

Algorithme

*** message déplacé ***

Posté par
mathafou Moderateur
re : Algobox 27-01-23 à 09:55

Bonjour,

multipost interdit
toutes les questions d'un même exercice doivent être dans la même discussion.

je laisse Leile poursuivre cet exo.

Posté par
Leile
re : Algobox 27-01-23 à 13:27

Bonjour,

as tu exécuté  ton algorithme avec de nombreuses valeurs pour voir comment u et p se comportent ?

Posté par
Leile
re : Algobox 27-01-23 à 20:07

alexhdmt,

où en es tu ?

quand u = 12,  alors p=10  c'est juste.
mais il y a d'autres valeurs de u  qui donnent aussi  p=10
par exemple 13, 80, 84,  512

cette dernière valeur u=512  pour p=10  est particulièrement intéressante. Tu vois pourquoi ?

Posté par
alexhdmt
re : Algobox 30-01-23 à 18:57

Bonjour, je n'ai pas avancé plus que ça, je pensais qu'une seule valeur donnait p=10 étant donné la formulation de la question. Et non je ne vois ce qu'il y a d'intéressant avec la valeur 512.

Posté par
Leile
re : Algobox 30-01-23 à 19:02

justement, la question pouvait te faire penser qu'il y avait plusieurs valeurs qui donnaient p=10.

512  est une grande valeur par rapport à 12  ou 13  ou 80.
Comment se fait-il qu'on ait besoin que de  10 passages dans la boucle ?
C'est parce que à chaque fois qu'on divise par 2, on trouve un nombre pair, donc ça va vite.

décompose  512  en facteurs premiers.
Qu'est ce que tu trouves ?

Posté par
alexhdmt
re : Algobox 30-01-23 à 19:28

J'obtiens: 512=2^{9}

Posté par
Leile
re : Algobox 30-01-23 à 19:35

oui     512  est une puissance de 2

d'autres puissances de 2  :
8  par exemple =  2^3     donne p= 4
4   =  2^2    donne p = 3
et  512  =  2^9    donne p=10....

tu vois le lien ?

alors si on te demande une valeur pour laquelle p=6 par exemple, qu'est ce que tu peux répondre ?

Posté par
alexhdmt
re : Algobox 30-01-23 à 20:09

que l'on cherche une valeur telle que  n^5?

Posté par
Leile
re : Algobox 30-01-23 à 20:13

une valeur qui donne p= 4   ?   je réponds    2^3
et p=3    ?        je réponds    2^2
  et  p = 10    ?  je réponds   2^9

p = 6     tu réponds ?
p=n       tu réponds ?

Posté par
alexhdmt
re : Algobox 31-01-23 à 13:38

p=6 --> 2^5
p=n --> 2^(n-1)

Posté par
Leile
re : Algobox 31-01-23 à 16:03

oui, c'est ça !

Tout est pk pour toi ?

Posté par
Leile
re : Algobox 31-01-23 à 16:04

**   tout est OK pour toi ?

Posté par
alexhdmt
re : Algobox 01-02-23 à 19:13

Non malheureusement, je ne comprends pas la question "b)De façon plus générale, n est un nombre entier naturel non. Trouver un nombre u saisi en entrée tel que la valeur affichée en sortie soit p=n."
Puisque la valeur de sortie est toujours un nombre entier naturel non nul, donc pourquoi chercher un "u" précis?

Posté par
alexhdmt
re : Algobox 01-02-23 à 19:15

Il manque un mot dans mon énoncé: "n est un nombre entier naturel non nul*"

Posté par
Leile
re : Algobox 01-02-23 à 19:47

en début d'exercice, on a cherché une valeur u  telle que p=10.
l'algo a affiché  "  nombre de tours  p= 10 "

on a trouvé   12, 13, 80, etc...     et  surtout 512   qui est égal  à  2^9

l'algo a affiché  "  nombre de tours  p= 10 "

Ca veut dire que même si tu n'avais pas d'algorithme, ni de calculatrice, quand je te dis "donne moi une valeur u qui marche, pour p=10", tu peux répondre 2^9

si je te dis p=4, tu peux me répondre tout de suite "avec u=2^3, ça marche ".

tu as donc écrit que   quelque que soit le nombre de tours n qu'on te donne (10  ou  4,  ou autre... )  avec   u=2 ^(n-1),  ça marche.

On pourrait faire une animation sur un stand de foire :
Quelqu'un dit un nombre n, et si  ton algorithme l'affiche, on te donne 5 euros.
Tu gagnes à tous les coups, puisqu'il te suffit de rentrer la valeur u=2^(n-1)   pour que l'algo affiche "nombre de tours p =  n "
c'est ce que dit la question :
Trouver un nombre u saisi en entrée tel que la valeur affichée en sortie soit p=n."

n : entier naturel  ==> oui, tu ne veux pas qu'on te demande un nombre de tours qui ne soit pas entier. Tu ne peux pas afficher p=2,5 tours par exemple.
Tu vois ?

Posté par
alexhdmt
re : Algobox 05-02-23 à 09:33

Bonjour Leile,
je suis en train de revoir cet exercice plus en profondeur, mais je suis pris d'un doute concernant la notion de pair ou impair.
Admettons que je choisisse le nombre 52.
A la première boucle on aura: 52/2=26
A la deuxième: 26/3= 26/3
Les nombres décimaux ne sont pas concernés par la notion de pair et d'impair?

Posté par
mathafou Moderateur
re : Algobox 05-02-23 à 11:11

en attendant
il n'y a nulle part de division par 3 ...
on divise par 2 si la valeur actuelle (pas la valeur initiale), ici 26, est paire
et sinon on multiplie par 3 et on ajoute 1
comme ceci a lieu pour une valeur impaire, le résultat est alors pair et le coup suivant on divise par 2 ...

en partant de 52 on obtient successivement
26, 13, 3*13+1=40, 20, 10, 5, 3*5+1=16, 8, 4, 2, 1 terminé

Posté par
alexhdmt
re : Algobox 06-02-23 à 11:50

Oui je me suis trompé en frappant, mais pour la question "3. b)De façon plus générale, n est un nombre entier naturel non. Trouver un nombre u saisi en entrée tel que la valeur affichée en sortie soit p=n.". Comment suis-je censé savoir que pour u=2^(n-1) ,p=n. Leile m'a donné la réponse mais comment puis-je savoir que l'on cherche u=2^(n-1)?

Posté par
Leile
re : Algobox 06-02-23 à 12:01

alexhdmt, je ne t'ai pas donné la réponse, je t'ai donné une piste et c'est toi qui l'a trouvée.

alexhdmt @ 31-01-2023 à 13:38

p=6 --> 2^5
p=n --> 2^(n-1)


Comment peut-on y penser ?
Tu vois que quand le nombre est impair, tu le multiplies par 3 et tu ajoutes 1. Ce qui fait que tu t'éloignes du but (tu dois arriver à 1) et tu as du mal à savoir combien de tours il faudra faire.
Par contre si tu choisis un nombre qui, quand tu le divises par 2 reste toujours pair, tu arriveras au but sans difficulté et là, tu peux savoir combien de fois il faudra le diviser par 2 (et en déduire le nombre de tours, donc la valeur de p)
un tel nombre est une puissance de 2.
2^n =  2*2*2*2*............ *2*2      avec n termes 2

tu vois ?

Posté par
alexhdmt
re : Algobox 06-02-23 à 18:27

C'est là que je ne comprends pas parce que cela marcherait également avec un nombre qui est une puissance de 4?

Posté par
Leile
re : Algobox 06-02-23 à 20:52

alexhdmt,
tu dis 'je ne comprends pas', mais pourtant,  tu sais bien que  tu peux diviser 2^n  par 2, n fois, non ?
Je ne vois pas bien ce que tu ne comprends pas.

pourquoi pas  une puissance de 4 ? ton algorithme divise par 2, pas par 4.
  
si je te dis p=6   par exemple,
il faudra entrer u=5  ou u=32  ....    32 est une puissance de 2, mais aucune puissance de 4  ne conviendra.

Posté par
alexhdmt
re : Algobox 12-02-23 à 09:45

Je me suis mal exprimé, je comprends que l'algorithme réalise un nombre restreint au maximum d'itérations si u= toujours un nombre pair. Mais pour autant dans mon esprit, je n'établis pas que par conséquent ce nombre u=2^n. Car je ne me rappelle pas avoir vu que 2^n donne toujours un nombre pair, vous voyez où je en venir?

Posté par
alexhdmt
re : Algobox 12-02-23 à 09:47

veux*

Posté par
Leile
re : Algobox 12-02-23 à 12:48


tu veux pouvoir diviser par 2 à chaque tour.
Donc il te faut un nombre qui s'écrit 2*2*2*2......* 2  
et ça, c'est une puissance de 2

et   2^n   /  2   =   2^(n-1)   qui est encore une puissance de 2.

un exemple
2^5  =   2* 2* 2* 2* 2
tu divises ça par 2, tu obtiens  2^4 =  2*2*2*2     que tu peux encore diviser par 2, et obtenir encore  un nombre qui se divise par 2.

Posté par
alexhdmt
re : Algobox 17-02-23 à 13:31

D'accord merci!



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