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

 C Discussion :

Algo & Chaine


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Par défaut Algo & Chaine
    Bonjour,

    J'ai a réaliser un programme qui à partir d'une chaine A généré aléatoirement va vérifier plusieurs autres listes appelées chaine B (enregistrer dans un fichier que j'envoie par redirection).

    Le but est de savoir si les termes de ces deux chaines sont dans le même ordre, dans le désordre ou ne corresponde pas, par exemple :
    Si chaine A comporte les termes suivant : 0 1 2 3 4 5
    et chaine B comporte les termes suivant : 0 1 2 3 4 5 elles sont en ordre

    Si chaine A : 0 1 2 3 4 5
    Si chaine B : 1 0 2 3 4 5 elles sont en désordre

    Si chaine A: 0 1 2 3 4 5
    Si chaine B: 1 2 3 4 5 6 elles sont ni dans l'ordre ni en désordre (elle ne corresponde pas)

    J'arrive assez facilement à reconnaitre les différentes chaine à partir du moment qu'elle sont simple, mais si par exemple ma chaine généré aleatoirement comporte des termes en doublé mon algo ne fonctionne plus.
    Comment traiter une chaine du type :
    chaine A : 0 1 2 3 1 2
    chaine B : 1 0 1 0 1 0

    Jusqu'a présent je faisais ainsi :
    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
    void analyse_in(int Atab[100],int Ltab[100][100],int L,int N)
    {
    	//Atab : chaine generer aleatoirement
            //Ltab : tableau contenant les listes
     
            int i,j,k;
    	int cp1,cp2;       
    	cp1=cp2=0;   
     
    	for (i=0;i<L;i++){   //L correspond à la liste a traiter 
    	for (j=0;j<N;j++)    //N correspond au nombre de terme dans la chaîne
    	{
    		if(Atab[j]==Ltab[i][j])  //Cp2 => Pour l'ordre
    			cp2++;            
     
    		for (k=0;k<N;k++)       //Cp1 => Pour le désordre
    		if (Atab[k]==Ltab[i][j])
    			cp1++;
    	}
    	analyse_out(Ltab,i,N,cp1,cp2);
                 //Si cp1=N alors "chaîne en désordre"
                 //Si cp2=N alors "chaîne ordonné"
    	cp1=cp2=0;}
    }
    Contrainte :
    Pas de programmation dynamique, pas d'utilisation de fonctions autre que celle de base (pas de fonction de copie de tableau, verification de tableau etc..)

    Merci beaucoup de votre aide.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 121
    Par défaut
    J'arrive assez facilement à reconnaitre les différentes chaine à partir du moment qu'elle sont simple, mais si par exemple ma chaine généré aleatoirement comporte des termes en doublé mon algo ne fonctionne plus.
    Comment traiter une chaine du type :
    chaine A : 0 1 2 3 1 2
    chaine B : 1 0 1 0 1 0
    Tu dois compter le nombre d'occurences de chaque terme de ta chaine à comparer. Et comparer les deux résultats.
    Dans ton exemple:
    chaine A: 0 1 2 3 1 2 --> 0: 1x 1: 2x 2: 2x 3: 1x
    chaine B: 1 0 1 0 1 0 --> 0: 3x 1: 3x
    Il faut que ces deux résultats soient strictement identiques

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 11
    Par défaut
    Merci !

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

Discussions similaires

  1. algo dichotomie - chaine
    Par djibril dans le forum Langage
    Réponses: 9
    Dernier message: 24/04/2008, 17h54
  2. algo sur chaine
    Par diam's dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 04/12/2006, 18h51
  3. Algo cryptage Cypher Block Chaining(CBC): une erreur?
    Par homeostasie dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 27/09/2006, 14h27
  4. Algo de création de chaine par concaténation de variables
    Par Zhebulon dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 13/04/2006, 14h37
  5. Algo de tri par liste chainée
    Par Treuze dans le forum C
    Réponses: 3
    Dernier message: 30/12/2005, 14h05

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