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

Java Discussion :

Permutation à partir d'un indice


Sujet :

Java

  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 26
    Par défaut Permutation à partir d'un indice
    Bonjour ,

    J ais un problem comment fait ce algorithm em java jais besoin un exemple jais une matrice
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      1    2    3   4  
                  5     6   7   8 
                  9    10  11 12
                  13 14 15 16
    L utilisateur saiser une indice par exemple 2 et le resultat faire une permutation a partire d indice mais 2 ligne par 2 ligne donc l'affichagr doit comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     1   2     5     6
                  3   4    7     8 
                  9  10  13    14
                  11  12  15  16
    Un exemple comment faire ca en java .

    j'mexcuse pour la langue

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    C'est incompréhensible. Peut-être devrais-tu t'adresser à une communauté parlant ta langue maternelle ?

  3. #3
    Modérateur
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2011
    Messages
    719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 719
    Par défaut
    Citation Envoyé par Sharcoux Voir le message
    Peut-être devrais-tu t'adresser à une communauté parlant ta langue maternelle ?
    Ce n'est pas clément de ta part. Il s'est excusé pour la langue
    j'mexcuse pour la langue
    tu n'as pas lu?
    Citation Envoyé par x2005man
    L utilisateur saiser une indice par exemple 2 et le resultat faire une permutation a partire d indice mais 2 ligne par 2 ligne donc l'affichagr doit comme ca
    - Qu'est -ce que tu veux bien permuter?
    - L'indice que l'utilisateur va entrer sera l'indice d'une ligne ou bien d'une colonne?
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

    Tu es nouveau dans le développement Android, la page des COURS est là pour te faciliter la vie
    Tu peux trouver la réponse à ta question dans la FAQ
    Retrouvez mon tutoriel sur la consommation des services web SOAP
    Pense à voter positivement en appuyant sur en bas à droite de la réponse qui t'a donné une piste de solution.

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 442
    Par défaut
    Désolé, c'était dit absolument sans méchanceté mais parce que je pensais que x2005man serait plus à l'aise pour exprimer son problème dans sa langue et qu'il en comprendrait mieux les réponses, mais après relecture, ça pouvait effectivement être mal interprété.

  5. #5
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Bonjour,

    Je n'ai pas exactement compris ce que tu voulais faire. Cependant, je ne pense pas que ce soit le cas exacte qui pose problème, mais bien l'utilisation du langage (Java).

    Si on reprends l'exemple :
    1 2 3 4
    5 6 7 8
    9 10 11 12
    13 14 15 16
    On aurai potentiellement une déclaration Java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int[][] matrice = {{1,2,3,4}, {7,6,7,8}, {9,10,11,12}, {13,14,15,16}}
    Si on veux permuter deux valeurs de cette matrice, il faut une valeur tampon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int tampon = 0;
    tampon = matrice[0][2]; // affecte la valeur 3
    matrice[0][2] = matrice[1][0]; // affecte la valeur 5 à la place de la valeur 3
    matrice[1][0] = tampon; // affect la valeur 3 à la place de la valeur 5.
    Après, le reste est expliqué dans le code :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    import java.util.Arrays;
     
    public class Matrice {
    	public static void main(String[] args) {
    		int[][] matrice = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 }, { 13, 14, 15, 16 } };
    		System.out.println(Arrays.deepToString(matrice));
    		// Le décalage supposé voulu pour le swap.
    		int input = 2;
     
    		// 1. On fait à la main une première fois
    		int tampon = 0;
    		tampon = matrice[0][2]; // affecte la valeur 3
    		matrice[0][2] = matrice[1][0]; // affecte la valeur 5 à la place de la valeur 3
    		matrice[1][0] = tampon; // affect la valeur 3 à la place de la valeur 5.
    		System.out.println(Arrays.deepToString(matrice));
     
    		// 2. On écrit une méthode qui le fait à notre place.
    		swap(matrice, 0, 3, 1, 1);
    		System.out.println(Arrays.deepToString(matrice));
    		// 3. On le fait le swap pour tout une ligne :
    		int[] ligne = matrice[2];
    		for (int i = input; i < ligne.length; i++) {
    			swap(matrice, 2, i, 3, i - input);
    		}
    		System.out.println(Arrays.deepToString(matrice));
    		// 4. On le fait pour tout les groupes de deux lignes.
    	}
     
    // Fonction qui échange deux éléments dans une matrice données.
    // Il n'y a aucune vérification quant à la possibilité du swap.
    // Attention aux OutBoundException !!
    	public static void swap(int[][] matrice, int ax, int ay, int bx, int by) {
    		int tampon = 0;
    		tampon = matrice[ax][ay]; // affecte la valeur 3
    		matrice[ax][ay] = matrice[bx][by]; // affecte la valeur 5 à la place de la valeur 3
    		matrice[bx][by] = tampon; // affect la valeur 3 à la place de la valeur 5.
    	}
    }
    Celui-ci est compilable est s'exécute avec java 1.5 minimum, pour l'affichage de la matrice avec deepToString !

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  6. #6
    Membre très actif Avatar de zaza576
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2013
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2013
    Messages : 175
    Par défaut
    Hello,

    si j'ai bien compris, il faut croiser 2 x 2 élements d'une ligne avec la ligne du dessous, non ?

    1 2 3 4
    5 6 7 8

    deviendrait

    1 2 5 6
    3 4 7 8

    Parcours ta matrice en lignes (le pas de la boucle est 2),
    extrais deux lignes à chaque fois sur lesquelles tu vas permuter les deux derniers éléments de la première ligne avec les deux premiers éléments de la deuxième ligne

    Après c'est juste une opération de swap entre deux éléments répété deux fois...

    Je prend la ligne 1
    Je prend la ligne 2
    Je prend la valeur 3
    Je l'échange avec la valeur 5
    Je prend la valeur 4
    Je l'échange avec la valeur 6
    Je prend la ligne 3
    Je prend la ligne 4
    ...

    Après t'avoir expliqué la démarche globale, montre-nous ton algorithme et le fruit de tes efforts ...

Discussions similaires

  1. [AC-2003] Recupérer un taux a partir d'un indice d'une autre table
    Par Shikam dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 28/05/2010, 16h22
  2. Comment obtenir la lettre de la colonne à partir de son indice et vice versa?
    Par benfatpatra dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2008, 11h31
  3. Trier un fichier a partir d'un indice
    Par Kassar dans le forum Général Python
    Réponses: 2
    Dernier message: 16/01/2008, 15h17
  4. trouver ligne et colonne a partir d'un indice
    Par Kangourou dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 26/10/2006, 09h57
  5. Réponses: 1
    Dernier message: 05/10/2006, 17h25

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