Bonjour à tous.
Je suppose que tout le monde a entendu parler de cette suite:
1
11
21
1221
112211
212221
12113211
111221131221
31222113112211
[etc..]
J'aimerais réussir à programmer cette suite sur l'ordinateur.
Je suis sur Maple, mais si vous m'explpiquez en francais comment faire, je devrais pouvoir y arriver quand meme.
Quelqu'un a-t-il une idée?
Pour info, j'ai déja fabriqué un programme qui a un nombre renvoie la liste de ses chiffres et l'inverse. Exemple:
chiffres(53264)=[5,3,2,6,4]
et nombre([5,3,2,6,4])=53264
Merci d'avance
Nicolas
Bonjour,
Quelle est la difficulté que tu rencontres ?
Il me semble qu'il suffit de parcourir la liste de gauche à droite. Tant qu'on a le même chiffre, on alimenter un compteur. Si on a un nouveau chiffre, on imprime le chiffre précédent précédé de la valeur du compteur, et on remet le compteur à zéro.
Nicolas
Ci-dessous un programme en Java non optimisé.
Il sort :
Merci a tous pour vos reponses
En effet, je me suis trompé à la 4eme ligne, mais je pense que vous avez compris le principe.
Merci aussi pour le programme en Java, cependant, je n'y comprends pas un mot (meme avec les commentaires).
J'ai moi meme fait un programme, qui ne fonctionne pas, en maple. J'aimerais savoir ou est le probleme: (pour linstant, il n'est censé donné que le nombre suivant (donc, jaimerais que nombreSuivant(112211)=212221.
nombreSuivant := proc (n)
local L, i, Reponse, compteur;
L := chiffres(n);
i := 0;
Reponse := [0];
while i < nops(L) do
i := i+1;
compteur := 1;
if i+1 <= nops(L) then if L[i] = L[i+1] then compteur := compteur+1; if i+2 <= nops(L) then if L[i] = L[i+2] then compteur := compteur+1 end if end if end if end if; Reponse := [op(Reponse), L[i]]
end do;
return nombre(Reponse)
end proc
Tu dis que ton programme en Maple ne fonctionne pas. Que se passe-t-il exactement ? Quel est le message d'erreur ?
Ci-dessous un exemple en Scheme, et sa sortie.
Je ne connais rien à Maple, mais en m'inspirant de ton bout de code, je te propose ce qui suit.
Il faut probablement remplacer [0] par la liste vide ( [] ?)
Je suis parti de l'hypothèse que le premier indice d'un tableau est 1 et non pas 0. Est-ce vrai ?
Comment fait-on un commentaire en Maple ?
Nicolas
Merci pour ton programme
Cependant, il ne fonctionne pas:
quand je tape nombreSuivant(211331), il me renvoie -10101010101
Merci quand meme
Je continue à chercher
pour info, la liste vide se note NULL, mais cela ne marcherait pas a cause de op(liste) qu'il ne comprendrait pas. Je precise que op(liste) renvoie la liste sans les crochets.
Rajouter un 0 au debut ne change rien car le programme (si il marche) va renvoyer par exemple 02312311213, ce qui est evidemment egal à 2312311213.
Pour les commentaire, voila:
machin:=proc(n)
#j'initialise les variables
local variables;
#je finis le programme
end proc:
Tu n'as pas répondu à ma question :
Un tableau en Maple commence à l'indice 1. Je vais en profiter pour te donner les principales opérations sur les listes:
Ainsi, si liste=[1,2,3,4,5]
liste[i]=i pour tout i appartenant à {1,2,3,4,5}
op(liste)=1,2,3,4,5
[op(liste),6)]=[1,2,3,4,5,6]
nops(liste)=5 (le nombre de chiffres dans la liste)
nombre(liste)=12345
Ce sera tout je crois?
Pourrais-tu compléter le code avec les 4 lignes suivantes, ou leur équivalent pour afficher ce qui est proposé ? Fais tourner le programme. Et poste sa sortie.
woaw!
ya pas ca sur maple (ou alors je sais pas faire :$)
Je pense qu'on ne peut faire que des calculs et renvoyer un nombre (ou une liste ou une matrice...) à la fin
Mais si, mais si. Consulte le manuel ou l'aide de Maple.
Essaie :
En effet!
Voici le résultat en tapant nombreSuivant(312211);
`i = `, 1
`chiffreEnCours = `, -1
`compteur = `, 0
`Reponse = `, [0]
`i = `, 2
`chiffreEnCours = `, -1
`compteur = `, 0
`Reponse = `, [0, 0, -1]
`i = `, 3
`chiffreEnCours = `, -1
`compteur = `, 0
`Reponse = `, [0, 0, -1, 0, -1]
`i = `, 4
`chiffreEnCours = `, -1
`compteur = `, 0
`Reponse = `, [0, 0, -1, 0, -1, 0, -1]
`i = `, 5
`chiffreEnCours = `, -1
`compteur = `, 0
`Reponse = `, [0, 0, -1, 0, -1, 0, -1, 0, -1]
`i = `, 6
`chiffreEnCours = `, -1
`compteur = `, 0
`Reponse = `, [0, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1]
-10101010101
Modifie le programme en rajoutant les ":" aux deux endroits ci-dessous.
Magnifique!
Merci beaucoup de ton aide!
Maintenant que le programme fonctionne, je vais me pencher sur l'algorithme pour le comprendre!
Merci encore du fond du coeur!
Je te souhaite un très bonne fin de journée!
A bientot!
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :