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

 C Discussion :

remplir une matrice sur une bande en diagonale


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut remplir une matrice sur une bande en diagonale
    Bonjour,

    Je voulais remplir juste la diagonale d'une matrice sur une bande disant de largeur 5 et les autres cases sont égale à 0.
    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    111000000
    111100000
    111110000
    011111000
    001111100
    000111110
    000011111
    000001111
    000000111
    Merci pour votre aide.

  2. #2
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Bonjour,
    quel problème rencontres-tu ?
    La résolution est relativement simple pour un bande de largeur L impaire : pour chaque ligne i, l'élément de la diagonale est en (i,i) du coup il suffit de mettre à 1 les éléments de (i,i-L/2) à (i,i+L/2) qui sont dans la matrice …

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par picodev Voir le message
    Bonjour,
    quel problème rencontres-tu ?
    La résolution est relativement simple pour un bande de largeur L impaire : pour chaque ligne i, l'élément de la diagonale est en (i,i) du coup il suffit de mettre à 1 les éléments de (i,i-L/2) à (i,i+L/2) qui sont dans la matrice …
    d'accord merci pour ton aide.
    Mais dans le cas d'un alignement entre deux séquences(chaines) comment dans ce cas?
    Je ne sais pas si vous savez qu'est ce que ça veut dire Alignement.
    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    bah si tu veux aligner deux chaînes il y a des algos pour ça … pourquoi diable voudrais-tu générer une matrice ?

    Explique ton problème, le vrai, pour éviter un problème XY.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par picodev Voir le message
    bah si tu veux aligner deux chaînes il y a des algos pour ça … pourquoi diable voudrais-tu générer une matrice ?

    Explique ton problème, le vrai, pour éviter un problème XY.
    mon problème je ne veux pas remplir toute la matrice je ne veux remplir que la diagonale sur une bande.
    c'est ça.
    Comment faire?

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par picodev Voir le message
    pour chaque ligne i, l'élément de la diagonale est en (i,i) du coup il suffit de mettre à 1 les éléments de (i,i-L/2) à (i,i+L/2) qui sont dans la matrice …
    Attention: sur les premières et dernières lignes, tu n'auras pas une bande d'une largeur de L

    Et ensuite mido1951 ne nous dit pas si sa matrice est carrée ou pas

    Mais je dirais un truc comme cela
    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
       precondition: nb_columns == nb_lines
     
        Si (nb_lignes >= L)
        Alors
            half <- (L/2)
     
            Pour i -> 0 à half  Faire
                Mettre des 1 dans les colonnes de 0 à (i + half)
            Fin Pour
     
            Pour i -> i à (nb_lines  - half ) Faire
                Mettre des 1 dans les colonnes de (i - half) à (i + half)
            Fin Pour
     
            Pour i -> i à nb_lines Faire
                Mettre des 1 dans les colonnes de (i - half) à nb_columns
            Fin Pour
        Sinon
            ?????
        Fin Si

  7. #7
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Citation Envoyé par picodev Voir le message
    Explique ton problème, le vrai, pour éviter un problème XY.
    Conseil judicieux qui pourrait s'appliquer à quasiment tous les fils ouverts par mido1951.

Discussions similaires

  1. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  2. [Langage/Algorithme] Remplir les pixels d'une image dans une matrice
    Par idkwru dans le forum C++Builder
    Réponses: 1
    Dernier message: 30/06/2010, 18h07
  3. Utilisation fonction imshow sur une partie d'une matrice
    Par bertrand42300 dans le forum Images
    Réponses: 2
    Dernier message: 25/04/2009, 11h30
  4. Réponses: 2
    Dernier message: 09/03/2008, 07h45
  5. Suppression d'une dimension sur une matrice
    Par damleg dans le forum MATLAB
    Réponses: 6
    Dernier message: 03/04/2007, 14h59

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