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

avec Java Discussion :

soustraction des element des deux tableaux


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut soustraction des element des deux tableaux
    Salut

    je suis besoin de cette méthode pour mon projet qui soustraire élement par élement des deux tableaux par exemple pour le tableau t1= 1011 et t2=0101
    il va retourné 1110, mais ca marche pas et j'ai pas touvé l'erreur , voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public static int [] soustr(int[] t1,int[] t2)
    		{
    		 int[] d = new int[t1.length];
    		    for (int k=0; k<d.length ; k++)
    			for (int i=0; i<t1.length ; i++)
    			for (int j=0; j<t2.length ; j++)
    		    {
    		    d[k]=(t1[i]-t2[j]);
     
    		    }
    			return d;
    		}
    merci d'avance

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Je ne comprends pas pourquoi la soustraction élément par élément de 1011 et 0101 devrait retourner 1110. Même en binaire ça ne donne pas ce résultat.
    En tout cas voila un code qui fait une soustraction élément par élément. (ça donne 1 -1 1 0 avec le précédent exemple. (attention aux exceptions si les tableaux sont de tailles différentes)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public static int [] soustr(int[] t1,int[] t2)
    {
        int[] d = new int[t1.length];
        for (int i=0; i<d.length ; i++)
        {
            d[i]=(t1[i]-t2[i]);		       
        }
        return d;
    }

  3. #3
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 23
    Par défaut
    salut
    merci pour ta réponse .
    mes calculs est en modulo donc je doit ajouté d[i]=((t1[i]-t2[i])%2), mais ca marche pas il me donnent les nombres négative et pour les tailles des tableau ca peut que le premier tableau soit superieur au premier comme ca t1=101010
    t2=0101 donc résultat ca sera 111110 donc c'est pourquoi j'ai étulisé deux boucle for au début .

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    J'avoue n'avoir toujours pas compris ton calcul, mais ce n'est pas grave, tu mets ce que tu veux dans la boucle, du moment que l'algorithme est bon.

    Pour gérer les tailles différentes, tu devrais faire come ceci :
    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 int [] soustr(int[] t1,int[] t2)
    {
        int[] d = new int[t1.length];
        for (int i=0; i<d.length ; i++)
        {
            if(i<t2.length) {
                d[i] = (t1[i]-t2[i]);
            }
            else {
                d[i] = // ce que tu veux sans accéder à t2
            }
        }
        return d;
    }

  5. #5
    Membre chevronné Avatar de Mobius
    Profil pro
    none
    Inscrit en
    Avril 2005
    Messages
    463
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : none

    Informations forums :
    Inscription : Avril 2005
    Messages : 463
    Par défaut
    Je ne vais pas répondre a la question car si j'ai bien compris c'est résolu (bien que pas sur...) mais faire une petite remarque.
    A vu de nez c'est un xor que tu veux faire entre les 2. (a moins que tu n'ai pas que des 0 et des 1)

    Une autre solution pour éviter de faire une soustraction et un modulo est d'utiliser l'opérateur xor
    et ca ne me surprendrait pas si on peut encore faire mieux

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 29
    Par défaut
    bonjour tout le monde,

    le t1[i]^t2[i] ça donne le xor en java?
    stp Mobius tu peux me donner les instructions (si elles existent) qui font les autres opérations binaires en java (or,nor,......) j'en ai besoin pour faire la division euclidienne binaire et la multiplication binaire polynomiale

    merci d'avance

Discussions similaires

  1. comparaison des elements de deux chaines
    Par karaudrey88 dans le forum Langage
    Réponses: 2
    Dernier message: 25/09/2013, 12h38
  2. Réponses: 2
    Dernier message: 01/06/2011, 12h14
  3. Réponses: 2
    Dernier message: 15/02/2011, 10h34
  4. Validation des namespace des element et attribute
    Par faldir dans le forum Valider
    Réponses: 1
    Dernier message: 11/02/2009, 21h01
  5. Réponses: 4
    Dernier message: 23/04/2008, 17h03

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