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 :

Matrice triangulaire dans un tableau 1D


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 31
    Par défaut Matrice triangulaire dans un tableau 1D
    Bonjour,
    J'ai une matrice triangulaire que j'aimerai stocker dans un tableau à une dimension.
    Je me souvient que c'est possible mais je n'arrive pas à me souvenir de "l'équation" qui lie les coordonnées en 2D de ma matrice (par exemple i et j) et les coordonnées 1D de mon tableau (par exemple k)
    Sachant que je peux stocker la partie inférieure ou supérieure de la matrice et que je ne souhaite pas stocker la diagonal.

    Merci d'avance, Léo

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Je pense que je l'ai déja ecrit sur ce forum...

    Matrice triangulaire de taille N avec sa diagonale (row<=col)

    index = row*(N-1) - TriangularNumber(row-1) + col


    Matrice triangulaire de taille N sans sa diagonale (row<col)

    index = row*(N-2) - TriangularNumber(row-1) + col-1


    avec TriangularNumber(a) = a*(a+1)/2
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Tu peux t'inspirer de ceci (extrait du sous-programme DSPCO, de la bibliothèque LinPack disponible gratuitement sur le site www.netlib.org
    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
     
    C     PACKED STORAGE
    C
    C          THE FOLLOWING PROGRAM SEGMENT WILL PACK THE UPPER
    C          TRIANGLE OF A SYMMETRIC MATRIX.
    C
    C                K = 0
    C                DO 20 J = 1, N
    C                   DO 10 I = 1, J
    C                      K = K + 1
    C                      AP(K) = A(I,J)
    C             10    CONTINUE
    C             20 CONTINUE
    C
    C     LINPACK. THIS VERSION DATED 08/14/78 .
    C     CLEVE MOLER, UNIVERSITY OF NEW MEXICO, ARGONNE NATIONAL LAB.
    Jean-Marc Blanc

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/09/2012, 14h57
  2. Enregistrer des matrices dans un tableau
    Par vaneck dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 10/01/2012, 10h38
  3. Matrice de Matrice dans un tableau de taille dynamique
    Par J_help dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/04/2010, 22h03
  4. Réponses: 4
    Dernier message: 08/04/2008, 08h55
  5. Réponses: 9
    Dernier message: 21/02/2006, 18h40

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