Défi n°7 : Et maintenant la suite !
Venez relever les défis MATLAB.

Le , par Jerome Briot, Rédacteur/Modérateur


joint à ce message, vous trouverez un fichier suite.zip contenant une fonction MATLAB qui, comme son nom l'indique, génère une suite mathématique (assez connue).

La fonction est contenue dans un fichier p que vous pouvez l'exécuter sans risque sous MATLAB, faite moi confiance.

La fonction s'utilise comme ceci :

Code : Sélectionner tout
suite(N)
avec N le nombre d'itérations pour générer les éléments de la suite, donc un entier supérieur à 0.

Sans argument d'entrée, la fonction affiche le résultat pour 10 itérations comme ceci :
1 
11 
21 
1211 
111221 
312211 
13112221 
1113213211 
31131211131221 
13211311123113112211 
11131221133112132113212221
---------------------------------------

Saurez-vous identifier le fonctionnement de la suite et écrire un code MATLAB permettant d'obtenir et d'afficher les termes de la suite de 1 à N (comme le fait la fonction suite)

---------------------------------------

Pour permettre à tout le monde de participer, soumettez-moi vos réponses par MP en insérant votre code MATLAB entre balises [code][/code]

---------------------------------------

Je donnerai dans cette discussion la liste des membres ayant la bonne réponse.

---------------------------------------

Question subsidiaire :

Saurez-vous trouver le nom de cette suite
Envoyez-moi votre réponse à cette dernière question par MP.

---------------------------------------

Bonne participation !



Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 19/10/2012 à 14:24
Liste des membres ayant trouvé la bonne réponse



Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 05/11/2012 à 9:48
Voici la solution

-------------------------

Cette suite mathématique est la suite de Conway

Citation Envoyé par Wikipedia
La suite de Conway est une suite mathématique inventée en 1986 par le mathématicien John Horton Conway, initialement sous le nom de « suite audioactive »1. Elle est également connue sous le nom anglais de Look and Say (« regarder et dire »). Dans cette suite, un terme se détermine en annonçant les chiffres formant le terme précédent.
Source : http://fr.wikipedia.org/wiki/Suite_de_Conway

La fonction "cachée" dans le code p était celle-ci :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
function suite(N)

if nargin==0
    N = 10;
end

if N<=0
    error('N doit etre un entier superieur a 0')
end

clc

s = 1;

fprintf('%d', s);
fprintf('\n');

for m = 1:N
    
    k(1) = 1;
    u(1) = s(1);
    i = 1;
    
    for n = 2:numel(s)
        
        if s(n)==s(n-1)
            k(i) = k(i)+1;
        else
            i = i+1;
            k(i) = 1;
            u(i) = s(n);
        end
        
    end
    
    s = [k;u];
    s = s(:).';
    
    fprintf('%d', s);
    fprintf('\n');
    
end
Aurélien avait donné une version plus compacte sur son blog "MATLAB pour les geeks" ici : Suite de Conway (dont ce sont largement inspirés tanguy4724 et Winjerome )

-------------------------

Avatar de tanguy4724 tanguy4724 - Membre habitué https://www.developpez.com
le 05/11/2012 à 11:01
tu nous repproches un plagiat ou une recherche internet fructueuse ayant mené à une inspiration soudaine?
Avatar de Jerome Briot Jerome Briot - Rédacteur/Modérateur https://www.developpez.com
le 05/11/2012 à 11:22
Je reproche pas... je constate
Avatar de tanguy4724 tanguy4724 - Membre habitué https://www.developpez.com
le 05/11/2012 à 11:33
et moi je confesse.

un autre défi pour nous racheter?
Avatar de magelan magelan - Modérateur https://www.developpez.com
le 05/11/2012 à 11:33
Je connaissais aussi le billet d'aurélien du coup, j'ai préféré ne pas participer... (en fait je n'ai pas réussi à modifier suffisamment le code d'Aurélien pour que ça passe inaperçu... apparemment vous non plus!)
Avatar de tanguy4724 tanguy4724 - Membre habitué https://www.developpez.com
le 05/11/2012 à 11:40
effectivement, nous non plus.

En même temps, améliorer un code c'est intéressant, mais l'inverse l'est moins

Et le code d'Aurélien me semble déjà optimisé...
Contacter le responsable de la rubrique MATLAB