Conjecture de Syracuse... sur TI...
Réponses à toutes vos questions de la 2nde à la Terminale toutes séries
-
theluckyluke
- Membre Relatif
- Messages: 371
- Enregistré le: 01 Mai 2006, 10:13
-
par theluckyluke » 01 Mai 2006, 10:24
Bonjour tout le monde!
Bon alors en fait, j'ai un petit problème avec ma calculatrice (c'est une TI-89)
Je voudrais faire un Programme pour qu'elle fasse le travail de la conjecture de Syracuse à ma place... Comment faire? :cry:
La conjecture de Syracuse c'est :
Pour un entier naturel quelconque :
-s'il est pair on le divise par 2
-si impair on le multiplie par 3 et on ajoute 1
et on recommence... on peut remarquer que l'on obtient pour les nombres faciles à étudier toujours une suite répétitive 4,2,1.
Ces calculs étant donc longs et répétitifs, j'aimerais demander à la calco de les faire. Mais je ne sais pas vraiment programmer... Aidez-moi!!!!
Merci beaucoup.
(D'ailleurs si vous savez aussi comment faire un programme pour trouver le nombre qui a la plus longue chaîne ce serait super de me l'expliquer....)
Merci d'avance.
-
Zebulon
- Membre Complexe
- Messages: 2413
- Enregistré le: 01 Sep 2005, 10:06
-
par Zebulon » 01 Mai 2006, 10:53
Bonjour,
dans ton programme, tu feras:
1). Demande d'un nombre x.
2). SI partie entière de x/2=x/2, ALORS afficher x/2
SINON afficher 3x+1.
Je suis désolée mais je ne me souviens plus des commandes et de la syntaxe.
-
theluckyluke
- Membre Relatif
- Messages: 371
- Enregistré le: 01 Mai 2006, 10:13
-
par theluckyluke » 01 Mai 2006, 11:05
ok, donc en gros ça doit donner qqch du genre :
nomduprogramme()
Prgm
Input x
n->1
If mod(x,2)=0
Then x/2->0
Else 3x+1->x
n+1->n
EndIf
EndPrgm
???? Merci
-
Pavel
- Membre Relatif
- Messages: 119
- Enregistré le: 23 Déc 2005, 21:01
-
par Pavel » 01 Mai 2006, 11:26
Salut
J'ai une Ti-82, c'est bcp moins bien qu'une Ti-89, mais le language est à peu près le même
j'écrirais plutôt
Nom
Prompt X
Lbl 1
If fPart(X/2) = 0
Then
X/2->X
Disp X
Pause
Goto 1
Else
3X+1->X
Disp X
Pause
Goto 1
End
J'ai testé sur ma calculette, ca donne le cycle 4,2,1
a+
-
theluckyluke
- Membre Relatif
- Messages: 371
- Enregistré le: 01 Mai 2006, 10:13
-
par theluckyluke » 01 Mai 2006, 11:57
ok merci à tous pour vos réponses ! en modifiant un peu le programme j'ai mis
nomduprogramme()
Prgm
Input x
While x "différent de" 1 (différents de : = barré)
If fPart(x/2)=0
Then
x/2->x
Disp x
Else
3x+1->x
Disp x
EndIf
EndWhile
EndPrgm
OuF......ça marche...
-
theluckyluke
- Membre Relatif
- Messages: 371
- Enregistré le: 01 Mai 2006, 10:13
-
par theluckyluke » 01 Mai 2006, 12:03
maintenant comment peut-on faire pour trouver le nombre qui a la plus longue chaîne en créant un programme? :marteau:
merci
-
Pavel
- Membre Relatif
- Messages: 119
- Enregistré le: 23 Déc 2005, 21:01
-
par Pavel » 01 Mai 2006, 12:41
Il faudra introduire une variable à laquelle on ajoute 1 à chaque cycle.
Par contre je sais pas comment faire pour que la calculette remarque la prmière suite 4,2,1.
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 91 invités