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 :

algorithme sur les vecteurs


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 125
    Par défaut algorithme sur les vecteurs
    salut
    je veux l'idée d'un algorithme qui retourne les vecteurs 001 010 100 101 110
    par exemple si on veux 7 vecteurs de longueur 4 il va retourner 0001 0010 0100 1000 1001 1010 1100 donc on doit entrer comme arguments la longueur et le nombre de vecteur que l'on veut.

    j'ai essaillé d'ecrire cette méthode mais malheuresement il n'a pas retourné ce que je veux .
    Code java : 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    package alouha;
     
    public class vecteur{
     
     
    	public static void binaire(int n, int m) {
    		for ( int i = m-1; i >= 0; i--) 
    		System.out.print(((n >> i ) & 1 ));
    		System.out.print("\t");
     
     
     
    		}
    	public static void vecteur(int n, int k,int classe){
     
            int l=n-k;
            int cp=0;
            double m = Math.pow(2,l);
     
     
    for(int i=0;i<m;i++)
    {
    	        int	res1=(int)(Math.pow(2,i));
     
     
     
    	        if(i<n-1) 
    			{
     
    			binaire(res1,n);
    			 cp++;
    			}
     
     
    	else 
     
    		if ((i==n-1))
    		{
    			while (cp<classe)
    			{
    		     binaire ((int)(Math.pow(2,n-1)),n);
    		     cp++;
     
    				    for(int j=1;j<=i;j++)
    				      {
     
    			               int	res2=(int)(Math.pow(2,i))+(int)(Math.pow(2,i-j));
    		                   binaire (res2,n);
     
    		                   cp++;
    	                  }
    			}
    		}
    }
     
     
    }
     
     
    	public static void main (String[] args){
     
    		       int	n=Integer.parseInt(args[0]);
    	           int	k=Integer.parseInt(args[1]);
    	           int	g=Integer.parseInt(args[2]);
     
    	           vecteur( n,  k,g);
     
     
    	}
    }

    merci d'avance

  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
    T'as pensé à le faire en récursif ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 125
    Par défaut
    comment

  4. #4
    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
    Les 4 premiers elements d'un vecteur de longueur 4:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    1: 0001
    2: 0010
    3: 0100
    4: 1000
    Les 3 elements suivants = "1" + les 3 premiers elements d'un vecteur de longueur 3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    5: 1 + 001 = 1001
    6: 1 + 010 = 1010
    7: 1 + 100 = 1100
    Les 2 elements suivants = "11" + les 2 premiers elements d'un vecteur de longueur 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    8: 11 + 01 = 1101
    9: 11 + 10 = 1110
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 125
    Par défaut
    oui c'est bien, mais le probleme c'est dans la condition d'arret.

    mes arguments son la longueur n et un nombre k et moi je veux 2^n-k vecteur comment je peux savoir que j'ai trouvé touts mes vecteur .

    dans mon code j'ai étulisé un compteur pour compter le nombre de fois que j'ai appelé la fonction binaire pour arreter tant que j'ai trouvé touts les vecteurs mais n'a pas marché .

  6. #6
    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
    un truc comme ca:

    Code java : 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
     
    int current=0, previous=0, length=4;
    int[] vector = new int[length];
    for(int i=1;i<=7;i++) {
    	vector[previous]=0;
    	vector[current]=1;
     
    	// ---> use the new vector here, for example: 
    	//  System.out.println(Arrays.toString(vector));
     
    	previous=current++;
    	if (current==length) {
    		length--;
    		current=0; previous=0;
    	}
    }
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

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

Discussions similaires

  1. ASP-Algorithme sur les codes couleur
    Par toxycyty dans le forum ASP
    Réponses: 4
    Dernier message: 06/07/2008, 21h11
  2. Algorithme sur les tableaux à grandes dimensions
    Par bobo034 dans le forum Algorithmes et structures de données
    Réponses: 0
    Dernier message: 26/05/2008, 16h11
  3. Algorithms sur les mauvais conteneurs
    Par NiamorH dans le forum SL & STL
    Réponses: 3
    Dernier message: 01/02/2008, 11h26
  4. [Tableaux] Aide pour un algorithme sur les tableaux
    Par sara21 dans le forum Langage
    Réponses: 7
    Dernier message: 20/05/2007, 10h28

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