Sagot :
Réponse :
Les suites de Syracuse des nombres 24 et 26 contiennent 11 termes exactement.
Pour 24, tu vas trouver 12, 6, 3, 10, 5, 16, 8, 4, 2, 1, c'est à dire 11 termes avec le nombre de départ
Pour 26, tu vas trouver 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, c'est à dire 11 termes avec le nombre de départ
Explications étape par étape
2 possibilités: une voie manuelle et une voie informatique en Python (si tu as eu des cours, sinon c'est possible d'adapter le programme en Scratch).
Manuellement:
Pour le nombre 20 (1er terme):
20 est pair, alors on divise par 2 = 10 (2ème terme)
10 est pair, alors on divise par 2 = 5 (3ème terme)
5 est impair, alors on multiplie par 3 (=15) et on ajoute 1 = 16 (4ème terme)
16 est pair, alors on divise par 2 = 8 (5ème terme)
8 est pair, alors on divise par 2 = 4 (6ème terme)
4 est pair, alors on divise par 2 = 2 (7ème terme)
2 est pair, alors on divise par 2 = 1 (8ème terme)
On tombe sur 1 alors on s'arrête.
La suite de Syracuse du nombre 20 contient 8 termes (20, 10, 5, 16, 8, 4, 2, 1).
On cherche une suite de 11 termes exactement, alors ce n'est pas 20 qui en a 8.
Continue avec 21, 22, 23 ... jusqu'à 30 inclus.
Lorsque tu as plus de 11 termes ce n'est pas la peine de continuer, car forcément ça ne peut pas être la réponse de l'exo.
Pour 24, tu vas trouver 12, 6, 3, 10, 5, 16, 8, 4, 2, 1, c'est à dire 11 termes avec le nombre de départ
Pour 26, tu vas trouver 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, c'est à dire 11 termes avec le nombre de départ
La réponse est donc Oui, c'est possible de trouver un nombre de départ entre 20 et 30 inclus telle que sa suite de Syracuse possède 11 termes exactement.
Les suites de Syracuse des nombres 24 et 26 contiennent 11 termes exactement.
Comprends bien les 2 possibilités pour chaque calcul:
C'est pair alors tu divises par 2
C'est impair alors tu multiplies par 3 et ajoutes 1
Quand tu arrives à 1, tu arrêtes.
Tu comptes le nombre de termes en incluant le nombre départ.
Informatiquement:
Selon ta classe, voici un programme Python qui te donne le nombre de termes pour chaque nombre entre 20 et 30 inclus:
for nb_entre_20_et_30 in range(20, 31):
nb_syracuse = nb_entre_20_et_30
compteur = 1
while nb_syracuse != 1:
if nb_syracuse % 2 == 0:
nb_syracuse //= 2
else:
nb_syracuse = 3 * nb_syracuse + 1
compteur += 1
print("Nombre:", nb_entre_20_et_30, "\t Nombre de termes:", compteur)
Tu peux t'aider de:
http://pythontutor.com/visualize.html#mode=edit
pour copier/coller ce programme et voir son exécution pas à pas.
J'espère que ça t'aide et que tu as compris.
Bonne chance, tu vas y arriver.