IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Permutations matrice ligne


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Par défaut Permutations matrice ligne
    Bonjour
    je suis novice en programation, j'aimerai transformer la matrice A et B
    A = [1 , 2, 3 , 4 , 5 , 6 , 7 , 8 , 9, 10 , 11, 12 , 13, 14, 15, 16]
    B = [1 , 2 , 15, 16, 3, 4, 13, 14 , 5, 6 , 11, 12 , 7 , 8, 9 , 10 ]

    Pouvez vous me suggerer un algorithme pour faire cette transformation. Mon probème consiste en faite à garder les deux premiers elements à leur place et ramener à côté les deux derniers, je garde par la suite les deux suivant à leur place et je ramène les deux derniersà coté ... ainsi de suite.

  2. #2
    Membre confirmé Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Par défaut
    je te propose l'algorithme suivant, que je n'ai pas encore testé, mais que je vais tester dès que j'aurais fini de poster...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    A[Taille]
    B[Taille]
     
    i = 1
    j = 1
    k = 1
     
    coté = gauche
     
    tant que i<taille faire
         si (coté = gauche) alors
              B[i] = A[j]
              B[i+1] = A[j+1]
              i = i+2
              j = j+2
              coté = droit
         sinon
              B[i] = A[Taille - (k+1)]
              B[i+1] = A[Taille - k]
              i = i+2
              k = k+2
              coté = gauche
         fin si
    fin tant que
    par contre je sais pas ce qui se produit si la taille du tableau n'est pas multiple de 4...

    je vais essayer

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2
    Par défaut
    Merci pour ton aide, La dimension de la matrice est bien multiple de 4. je vais essayer de programmer l'lgorithme que tu m a proposé.

    Sinon, Voici le programme que j'ai ecrit en matlab qui me permet d'obtenir à partir de A=[-4 -3 -2 -1 0 1 2 3 4] la matrice
    B=[-4 4 -3 3 -2 2 -1 1 0].

    Début du programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    A=[  -4 -3 -2 -1 0 1 2 3 4]
    size_A = size(A);
    n = size_A(2);
    i=0;
    while i<n-1
    a=A(i+1);
    A(i+1)=A(n);
        for j=0: n-i-2
            A(n-j)=A(n-j-1);
        end
    A(i+2)=a;
    i=i+2;
    A;
    end
     
    %Pour la permutation
    for i=1:2:n-1
        b=A(i+1);
        A(i+1)=A(i);
        A(i)=b;
    end
    A;
    B=A
    Fin du programme

  4. #4
    Membre confirmé Avatar de hamster
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 137
    Par défaut
    y'a un petit moment que j'ai pas lancé matlab...

    l'algo a l'air bien.

    si ça te prouit le résultat attendu, alors change rien...

    As-tu pensé à commenter ton fichier .m pour faciliter la réutilisation de tes fonctions ?

Discussions similaires

  1. Remplir des matrices ligne par ligne
    Par leeimad dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/05/2013, 00h00
  2. Transformer une matrice colonne en matrice ligne
    Par Leanaa dans le forum Bibliothèques tierces
    Réponses: 19
    Dernier message: 05/07/2012, 17h11
  3. matrices, lignes, colonnes, transposition
    Par djbad dans le forum Général Python
    Réponses: 11
    Dernier message: 16/09/2010, 23h13
  4. Permuter les lignes d'une matrice
    Par JonasB dans le forum MATLAB
    Réponses: 3
    Dernier message: 12/03/2009, 15h58
  5. Permuter deux ligne avec un DataGridview
    Par glycerine dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/12/2007, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo