|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Enseignant Inscription : avril 2011 Messages : 26 ![]() |
Désolé pour le post précédent, il s'agit bien de la suite dite de Syracuse et non de Césaro.
Bonjour, je tente en vain de définir une fonction qui rend le n-iéme terme de cette suite définie par Un+1 = Un/2 si Un pair, et (3*Un)+1 si Un impair, à partir de Uo fixé. Je prends 2 variables n le rang du terme, et p le premier terme. Je ne parviens pas à construire la récurrence. Je pose if (= n 0) p J'ai fait des essais directs à partir de cette étape, j'ai également essayé de passer par une seconde condition sur n = 1 suivie de (even? p) p/2 sinon (3p)+1. mais je n'arrive pas à démarrer la récurrence. A votre avis, faut-il 2 variables? Merci par avance des idées qui pourraient débloquer ma réflexion. Cordialement. |
|
|
00
|
|
|
#2 |
|
Membre à l'essai
![]() Inscription : avril 2008 Messages : 18 ![]() |
Ce que je ferai de mon côté, c'est d'abord de créer une fonction qui prenant le Uo et rend une liste contenant tous les termes de la suite de Syracuse calculés. Et puis une seconde fonction, prenant comme argument la liste précédente et d'abord vérifiant si la liste a autant de termes de que celui qu'on demande et puis aller le chercher dans la liste.
Je n'ai pas encore vraiment cherché à le faire en vrai mais voilà la manière dont je procéderai. EDIT : Voilà, j'ai mis en application mon idée. Je me pose juste une question. Est-ce que tu comptes tout faire toi-même ? En soit, cela serait un bon exercice mais de mon côté je n'ai pas eu le courage et j'ai employé des fonctions de la bibliothèque standard pour l'extraction du i-ème terme. Quoi que je viens de trouver une fonction qui le faisait directement. |
|
|
10
|
|
|
#3 |
![]() ![]() Inscription : septembre 2003 Messages : 4 434 ![]() |
So.Ta >> ton idée est tout à fait dans l'esprit du fonctionnel mais je pense qu' elle dépasse le niveau d'un débutant.
Le plus simple à mon avis est une fonction a trois arguments (syracuse n v nmax) ou n est le numéro d'indice courant , nmax le numero d'indice désiré et v la valeur courante de la suite. On lance avec (syracuse 1 2011 100) par exemple. On peut ensuite réfléchir pour passer de 3 à seulement deux arguments.
__________________
"La haine seule fait des choix" - Koan Zen "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne. Faites du Prolog, ça vous changera les idées ! Ma page Prolog Mes codes sources commentés Mon avatar : Intérieur avec jeune femme de Vilhelm Hammershoi |
|
|
10
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : avril 2008 Messages : 18 ![]() |
Trap.D >> Cela fait longtemps que je n'avais pas fait de Scheme d'où peut-être un légère tendance à prendre un chemin plus compliqué[1] mais c'est vrai que la solution que tu proposes est plus facile à implémenter.
Debinfo75 >> Si tu passes encore sur ce sujet, peux-tu nous dire où en es-tu de ton côté ? |
|
|
10
|
|
|
#5 |
|
Invité régulier
![]() Enseignant Inscription : avril 2011 Messages : 26 ![]() |
Merci à vous.
Je reviens sur le sujet et y réfléchis de nouveau. Tardivement, en tout cas pas à la mesure de votre disponibilité. Je vous tiens au courant de ma progression. A nouveau merci. Cordialement. |
|
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() almaghribi Abo trika Inscription : novembre 2009 Messages : 58 ![]() |
Bonsoir,
si j'ai bien compris, voila un une fonction qui rend le nieme terme: Code :
E. Bazoga |
||
|
00
|
Copyright © 2000-2013 - www.developpez.com