Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > MATLAB > Contribuez
Contribuez Proposez vos tutoriels, FAQ, sources, astuces MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 19/10/2012, 14h24   #1
Dut
Responsable MATLAB & Hardware/PC

 
Avatar de Dut
 
Inscription : novembre 2006
Messages : 15 093
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 15 093
Points : 31 152
Points : 31 152
Par défaut [Défis][7] Et maintenant, la suite !



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 :

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 !

Fichiers attachés
Type de fichier : zip suite.zip (460 octets, 4 affichages)
Dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2012, 14h24   #2
Dut
Responsable MATLAB & Hardware/PC

 
Avatar de Dut
 
Inscription : novembre 2006
Messages : 15 093
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 15 093
Points : 31 152
Points : 31 152
Liste des membres ayant trouvé la bonne réponse

__________________
Identification de processeur sous MATLAB (3/3) Identification de processeur sous MATLAB (2/3) Mes contributions MATLAB (R2009a - Windows & Linux)

J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" (Saint Huck)
Dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 09h48   #3
Dut
Responsable MATLAB & Hardware/PC

 
Avatar de Dut
 
Inscription : novembre 2006
Messages : 15 093
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 15 093
Points : 31 152
Points : 31 152
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 :
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 )

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

__________________
Identification de processeur sous MATLAB (3/3) Identification de processeur sous MATLAB (2/3) Mes contributions MATLAB (R2009a - Windows & Linux)

J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" (Saint Huck)
Dut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 11h01   #4
tanguy4724
Membre habitué
 
Homme Tanguy
étudiant ingénieur traitement images médicales
Inscription : juin 2012
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme Tanguy
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : étudiant ingénieur traitement images médicales
Secteur : Santé

Informations forums :
Inscription : juin 2012
Messages : 74
Points : 143
Points : 143
tu nous repproches un plagiat ou une recherche internet fructueuse ayant mené à une inspiration soudaine?
tanguy4724 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 11h22   #5
Dut
Responsable MATLAB & Hardware/PC

 
Avatar de Dut
 
Inscription : novembre 2006
Messages : 15 093
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : novembre 2006
Messages : 15 093
Points : 31 152
Points : 31 152
Je reproche pas... je constate
__________________
Identification de processeur sous MATLAB (3/3) Identification de processeur sous MATLAB (2/3) Mes contributions MATLAB (R2009a - Windows & Linux)

J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" (Saint Huck)
Dut est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 05/11/2012, 11h33   #6
tanguy4724
Membre habitué
 
Homme Tanguy
étudiant ingénieur traitement images médicales
Inscription : juin 2012
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme Tanguy
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : étudiant ingénieur traitement images médicales
Secteur : Santé

Informations forums :
Inscription : juin 2012
Messages : 74
Points : 143
Points : 143
et moi je confesse.

un autre défi pour nous racheter?
tanguy4724 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 11h33   #7
magelan
Modérateur
 
Inscription : août 2007
Messages : 4 104
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4 104
Points : 5 444
Points : 5 444
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!)
__________________
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


La nature est un livre écrit en langage mathématique. Galilée.
magelan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/11/2012, 11h40   #8
tanguy4724
Membre habitué
 
Homme Tanguy
étudiant ingénieur traitement images médicales
Inscription : juin 2012
Messages : 74
Détails du profil
Informations personnelles :
Nom : Homme Tanguy
Âge : 24
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : étudiant ingénieur traitement images médicales
Secteur : Santé

Informations forums :
Inscription : juin 2012
Messages : 74
Points : 143
Points : 143
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é...
tanguy4724 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 01h46.


 
 
 
 
Partenaires

Hébergement Web