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

Collection et Stream Java Discussion :

Recherche d'un tableau dans un tableau


Sujet :

Collection et Stream Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut Recherche d'un tableau dans un tableau
    Salut à tous,

    le titre résume assez bien ce que je dois faire, je dois en fait écrire uen fonction qui prend en argument deux tableaux bidimensionnels d'entiers t1 et t2 et elle teste si il existe un sous tableau de t1 qui est égale a t2. J'ai globalement compris le but de la fonction mais apres il y a une autre phrase que j'ai un peu de mal a saisir =>
    "En d’autres termes, s’il existe des indices i et j tels que pour tous h < t1.length et
    k<t1[0].length, on a t1[i+h][j+k]=t2[h][k]"

    voila ce que j'ai fait : http://pastebin.com/HMfDZKSq ,
    a chaque test il m'affiche true. L'idée globale me parait bonne mais j'avoeu que la deuxieme phrase me laisse perplexe, si quelqu'un peut m'aider ca serait cool , merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static boolean recherche(int[][] t1, int[][] t2) {
            for(int i = 0; i < t1.length; i++) {
                for(int j = 0; j < t1[i].length; j++) {
                    for(int h = 0; h < t2.length; h++) {
                        for(int k = 0; k < t2[0].length; k++) {
                            if(t1[i+h][j+k] == t2[h][k]) {
                                return true;
                            }
                        }
                    }
                }
            }
            return false;
        }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    La deuxième phrase ne fait qu'expliquer plus en détail avec des expressions un peu plus "java" ce qui t'es demandé avant.

    Ton code ne fait que retourner true dès qu'elle trouve une valeur égale dans deux cases des deux tableaux (à des indices que je n'ai pas cherché à calculé).

    Pour faire ce que tu as à faire, l'algorithme naïf (ce qui sera suffisant pour l'exercice je pense) est :

    2 tableaux tableau1, tableau2 
    tableauTrouvé= false 
    boucle pour indexTableau1 de 0 à tableau1.length-1  et tant que pas tableauTrouvé
    
           tableauxEgaux = vrai 
           boucle pour indexTableau2 de 0 à tableau2.length-1 et tant que (indexTableau1 + indexTableau2) < tableau1.length ) et tableauxEgaux vrai
              si case d'index (indexTableau1+indexTableau2) dans tableau1 n'est pas égale à case d'index indexTableau2 dans tableau2 alors
                 tableauxEgaux = false
              fin si
           fin boucle indexTableau2
           si tableauxEgaux alors
              tableau2 est dans tableau1 à l'indice de départ indexTableau1
              tableauTrouvé = true
           fin si
    fin boucle indexTableau1
    si pas tableauTrouvé alors
        tableau2 n'est pas dans tableau1
    fin si
    
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    Ok merci pour ton algo, par contre il n'utilise pas la maniere dite dans l'énoncé qui suppose d'imbriquer plusieurs boucles

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Je ne vois pas où il est cet énoncé qui dit qu'il faut imbriquer des boucles. Cela dit mon algorithme imbrique 2 boucles, et 2 , c'est des
    Ensuite, mon algorithme est un algorithme de principe, qui s'applique à 2 tableaux à 1 dimension. Il suffit de l'étendre pour l'appliquer à des tableaux à 2 dimensions : dans ce cas, tu auras 4 boucles imbriquées.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Points : 49
    Points
    49
    Par défaut
    ok je vois je me suis un peu embrouillé avec les tableaux a une dimension et bidimension, merci de ton aide en tt cas

Discussions similaires

  1. recherche d'un objet de type tableau dans un vector
    Par sandy07 dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 07/06/2007, 09h16
  2. VBA-E Recherche des différents noms dans mon tableau excel
    Par tazmania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/04/2007, 19h31
  3. Réponses: 5
    Dernier message: 15/03/2007, 06h58
  4. recherche de valeur identique dans un tableau
    Par jean tof dans le forum Langage
    Réponses: 9
    Dernier message: 20/06/2006, 13h33
  5. [Tableaux] Recherche d'une chaine dans un tableau
    Par tom06440 dans le forum Langage
    Réponses: 5
    Dernier message: 20/10/2005, 23h27

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