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 :

trouver ligne et colonne a partir d'un indice


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut trouver ligne et colonne a partir d'un indice
    bonjour,

    supposons que j'ai un tableau de la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    1 2 4  7 11 16 ...
    0 3 5  8 12 17 ...
    0 0 6  9 13 18 ...
    0 0 0 10 14 19 ...
    0 0 0  0 15 20...
    0 0 0  0  0 21...
    ....
    a partir d'un nombre donne (entier),
    connaissez vous une methode pour retrouver la ligne et la colonne ou on trouve ce nombre dans le tableau ?
    A priori je pense qu'on doit pouvoir se passer de l'information sur la taille du tableau, mais sinon c'est une info qu'on a.

    A+

  2. #2
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Le dernier nombre de la colonne X est égal à X * (X + 1) / 2
    Il suffit donc de trouver le plus grand X entier pour lequel:

    X * (X + 1) / 2 < N

    et ensuite, le numéro de ligne Y est égal à

    Y = N - X * (X + 1) / 2

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 33
    Par défaut
    Le premier élément de chaque colonne du tableau est égal à (i*(i-1))/2 + 1 avec i l'indice de la colonne (1ère colonne => i = 1). Donc en calculant les premiers éléments successifs de chaque colonne, il devrait être simple de déterminer la colonne et la ligne. Si le nombre est très grand, il peut être utile de commencer le calcul à partir de i = racine(2n) avec n = nombre recherché

  4. #4
    Membre émérite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par défaut
    Citation Envoyé par Vinchou
    Si le nombre est très grand, il peut être utile de commencer le calcul à partir de i = racine(2n) avec n = nombre recherché


    Je pensais qu'il y avait d'autres méthodes plus rapide que la recherche séquentielle pour résoudre une équation du second degré ?

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    colonne: ceil(-1+sqrt(1+8*i))/2
    ligne: i - (c-1)*c/2

  6. #6
    Membre émérite
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    Merci Jean-Marc, c'est la reponse que je cherchais.
    Et effectivement, elle n'est pas tres dure a retrouver...

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/08/2011, 13h17
  2. Trier selon une colonne et à partir de la 3eme ligne
    Par manu f dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/07/2010, 20h18
  3. Réponses: 2
    Dernier message: 20/07/2008, 19h22
  4. [SQL] Remplir une base SQL à partir d'un tableau à plusieurs lignes et colonnes
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/08/2007, 08h56
  5. [Requête]Creation Colonnes A Partir Des Lignes
    Par elouali dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 25/04/2007, 14h31

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