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 :

Cryptographie : Algorithme du sac à dos


Sujet :

Algorithmes et structures de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Cryptographie : Algorithme du sac à dos
    bonsoir,

    Alors je suis sur la phase finale de mon projet de programmation qui consiste à crypter un message et le decrypter par la suit . Ce programme repose sur l'algorithme du sac à dos pour plus de détails voici un lien expliquant le principe. http://www.bibmath.net/crypto/complements/sacados.php3

    En ce qui concerne l'algorithme je vais l'expliquer en deux mots : générer une clef public constituée d'une suite super croissante, d'une permutation et des Bi, et d'une clef privée W et C. La clef public sert essentiellement à crypter le message et la clef privée sert à le décrypter .( pour les formules voir le lien )

    Avec mes collegues nous avons réussi à coder la plupart des éléments de l'algo à savoir la création d'un système de cryptage : clef public clef privée . on en est à présent à la phase de réception du message codé le décomposer pour retrouver le message binaire initiale et pouvoir le reconvertir en ascii par la suite pour re-avoir les caractères de base. pour chaque caractère est créé un C qui est stocké sur 8 lignes d'un fichier.txt. Lors de la réception du message codé nous allons avoir des C et un W ( stockés tous deux dans un fichier.txt )
    on effectura une re-décomposition du produit CW^-1 pour en retrouver les différents termes de la suite super croissante et d'après la permutation nous allons comparer les nombres retrouvés et leur place occupée dans la permutation ce qui va nous aider à placer les 0 et les 1 .( consulter le lien svp ) . J'ai essayé de coder cette partie et pour le moment je bloque quelque part ca compile mais ça fait pas ce qui faut.... voici mon code :

    Code C : 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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int main(void)
    {
        int i,h,k,M,Wp,nb,temp,nbtest, v,  l , p , y , z,  e,toto;
    	FILE *fp;
    	char tampon[512];
    	char ligne_lue[512];
    	int nombre_de_ligne = 0 , imax=0 ,imin= 0 ,  tmin=0 , tmax=0, s = 0;
    	int A[8] ,Ap[8], C[400], perm[8] , X[400], Bin[8][400] , res[8];
     
     
     
     
     
     
            FILE* ftemps=NULL;
            ftemps = fopen("cle_privee.txt","r");
     
            // attention, il faut verifier que l'ouverture du fichier s'est bien faite
            if ( ftemps == NULL ) {
            //erreur
            }
     
     
            char ligne[256];
     
            for (h=0; h <8; h++) {                  //la suite Ai stocker dans les 8 premieres lignes du fichier ne nous sont pas
                                                    //ici on parcour simplement le fichier .
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&A[h]) != 1 ) {
                //erreur
            }}
     
            for (h=8; h <9; h++) {
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&M) != 1 ) {
                //erreur
            }
     
            }
            for (h=9; h <10; h++) {
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&temp) != 1 ) {
                //erreur
            }
     
            }
            for (h=10; h <11; h++) {
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&Wp) != 1 ) {
                //erreur
            }
     
            }
            //ne pas oublier de fermer le fichier
            fclose(ftemps);
     
     
     
     
     
            fp = fopen("mess_Ci.txt","r");
     
    	// test l'existance du fichier texte
    	if ((fp = fopen("mess_Ci.txt","r")) == NULL)
    	{
    		printf("Impossible d'ouvir le fichier\n\n");
    		return 0;
    	}
     
    	else
    	{
    		// Calcule le nombre de lignes dans le fichier texte
    		while(fgets(ligne_lue, sizeof(ligne_lue), fp) != NULL)
    		{
    			nombre_de_ligne++;
    		}
     
    		// Positionne le curseur au début du fichier
    		fseek(fp,0,SEEK_SET);
     
    		for ( i = 0 ; i < nombre_de_ligne ; i++)
    		{
    			 fgets(ligne,256,fp);
            if ( sscanf(ligne,"%d",&C[i]) != 1 ) {
                //erreur
            }
     
            }
    		fclose(fp);
     
    }
     
    nb = nombre_de_ligne ;
     
     
    printf("W puissance -1  est charge ! Wp = %d  et M est chargé aussi M = %d\n\n",Wp,M);
     
     
    for ( i=0 ; i < nb ; i++ ){
        printf ("La valeur %d  du message code est charge en C%d = %d\n", i+1 , i+1, C[i] );
    }
     
    printf("\n\n\n");
     
     
    for ( i=0 ; i < 8 ; i++ ){
        printf ("La valeur %d  du de la suite supercroissante A(%d) = %d\n", i+1 , i+1, A[i] );
    }
     
    printf("\n\n\n");
     
     
     
            FILE* ftemps2=NULL;
            ftemps2 = fopen("permut.txt","r");
     
            // attention, il faut verifier que l'ouverture du fichier s'est bien faite
            if ( ftemps2 == NULL ) {
            //erreur
            }
     
     
     
     
            for (h=0; h <8; h++) {                  //la suite Ai stocker dans les 8 premieres lignes du fichier ne nous sont pas
                                                    //ici on parcour simplement le fichier .
     
            fgets(ligne,256,ftemps2);
            if ( sscanf(ligne,"%d",&perm[h]) != 1 ) {
                //erreur
            }}
     
            fclose(ftemps2);
     
     
    for ( i=0 ; i < 8 ; i++ ){
        printf ("La valeur %d  de la permute est = %d\n", i+1 ,  perm[i] );
    }
     
    printf("\n\n\n");
     
     
    system("pause");
    //system("cls");
     
    for (y=0 ; y < 8 ; y ++ ) {
        for (z = 0 ; z < 400 ; z++){
            Bin[y][z] = 0 ;
        }
    }
     
     
     
     
     
    for (k=0; k<8 ; k++ ) {
        nbtest = perm[k] - 1 ;
        Ap[k]= A[nbtest] ;
    }
     
     
    for ( k=0 ; k < 8 ; k++ ){
        printf ("La valeur %d  de la permute est de Ai est :%d\n", k+1 ,  Ap[k] );
    }
     
     
     
    for ( v=0 ; v< nb ; v++){
        X[v] = (C[v] * Wp)%M ;
        printf("%d\n",X[v]);
    }
     
     
    for( i = 0 ; i < nb ; i++ ) {
     
        k = 8 ;
     
        while(k > 0 )  {
     
            if(X[i] < A[k] ){
     
               k = k - 1 ;
     
            }else {
     
                tmax = k ;
                k = 0 ;
     
     
            }
        }
     
        imax = tmax ;
        //printf("\n\n\n\n\n min : %d ,                  max = %d \n",imin , imax );
     
     
     
        while(X[i] > 0 ) {
     
            X[i] = X[i] - A[tmax] ;
     
            res[s] = A[tmax] ;
            s ++ ;
     
     
             k = 8 ;
     
                    while(k > 0 )  {
     
                        if(X[i] < A[k] ){
     
                            k = k - 1 ;
     
                                }else {
     
                                    tmax = k ;
                                    k = 0 ;
     
     
                                }
                        }
     
            tmin = tmax  ;
        }
     
        imin = tmin ;
     
        printf("\n\n\n\n\n min : %d , max = %d \n",imin , imax );
        toto = strlen(res) ;
     
     
     
        for (l = 0;  l < toto ; l++ ){
            for ( p = 0  ; p <8 ; p++ ) {
                if ( res[l] != Ap[p] ) {
                    Bin[p][i] = 1 ;
                }
            }
        }
     
    imin = 0 ;
    imax = 0 ;
    tmax = 0 ;
    tmin = 0 ;
     
     
    for (e = 0 ; e < 8 ; e++){
            printf("%d\n\n\n", res[e]) ;
        }
    s = 0 ;
    }
     
     
     
    for (y=0 ; y < 8; y ++ ) {
        for (z = 0 ; z < nb ; z++){
            printf("%d",Bin[z][y]);
     
        }
        printf(" \n");
    }
     
     
     
     
     
     
    }



    SvP aidez moi je vous en serai trés reconnaissant....

  2. #2
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    Par défaut
    Citation Envoyé par ouissaou Voir le message
    une clef public constitue d'une suite super croissante,d'une permutation et des Bi, et d'une clef privee W et C
    Clé privée : Suite supercroissante A(i), Permut, W et M
    Clé publique : Suite générale B(i)

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2008
    Messages : 70
    Points : 76
    Points
    76
    Par défaut
    J 'ai reflechis un peu a ton probleme, le chargement des fichiers sont bon , c'est tn algorithme permettant la decomposition de tes Xi qui est mauvais .

    je te suggere de te pencher dessus j'ai essayer de chercher un peu j'ai pas trouver comment te resoudre ca et je te suggere de stocker tes 0 et 1 ( binaire ) dans un tableau de caractere a 1 dimension

  4. #4
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    Par défaut
    Quand je compile, il y a également un soucis à ce niveau là

    toto = strlen(res);

    Apparemment tu ne peux pas mettre res ici...

  5. #5
    Membre actif
    Inscrit en
    Mars 2008
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 209
    Points : 227
    Points
    227
    Par défaut
    eh ben la je suis vraiment ébloui... je n'ai jamais vu une telle application du sac a dos ?!!

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut pa troo clair...
    bonsoir,

    Avant tout merci à vous de vous etre interresser a mon probleme meme si vos reponse ne m'ont pas vraiement éclairé .
    Sinon j'ai avancé un peu depuis sur le sujet mais ca necompile toujours pas comme je veux....
    En fait concraitement etplus simplement expliqué sans rentrer dans les details du sac a dos, voila ce que je voudrais faire :

    Obtenir les différents termes de la suite supercroissante qui nous ont permis d'obtenir un X préalablement recu et renvoyer un nombre binaire tel qu'il ait un 1 a la place du terme de la suite. (x = w^-1*c stockés sous forme de tableaux)
    Pour cela voila les procédures a suivre :
    1- Stocker une suite (supercroissante) de nombre dans un premier tableau à 8colonne qu on nomera A .
    2- Stocker dans un tableau Ap une deuxieme Qu on aurait obtenu du premier en ayant appliquer une permutation (perm[i])
    3-Soustraire de X les A jusqu'à c qu'on ai 0 et stocker dans un troisième tableau (res[i] ) les termes qu'on a soustrait.
    4-Comparer res[i] et Ap[i] et mettre un 1 dans Bin[i][j] lorsqu'il y a égalité .

    j'ai reussi a faire les deux premières étapes mais je bug enfin le compilateur bug sur les deux dernieres. voici mon 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
    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
     
    int main(void)
    {
        int i,h,k,M,Wp,nb,temp,nbtest, v,  l , p , y , z;
    	FILE *fp;
    	char tampon[512];
    	char ligne_lue[512];
    	int nombre_de_ligne = 0 , imax=0 ,imin= 0 ,  tmin=0 , tmax=0, s = 0;
    	int A[8] ,Ap[8], C[400], perm[8] , X[400], Bin[400][8] , Res[8];
     
     
     
     
     
     
            FILE* ftemps=NULL;
            ftemps = fopen("cle_privee.txt","r");
     
            // attention, il faut verifier que l'ouverture du fichier s'est bien faite
            if ( ftemps == NULL ) {
            //erreur
            }
     
     
            char ligne[256];
     
            for (h=0; h <8; h++) {                  //la suite Ai stocker dans les 8 premieres lignes du fichier ne nous sont pas
                                                    //ici on parcour simplement le fichier .
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&A[h]) != 1 ) {
                //erreur
            }}
     
            for (h=8; h <9; h++) {
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&M) != 1 ) {
                //erreur
            }
     
            }
            for (h=9; h <10; h++) {
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&temp) != 1 ) {
                //erreur
            }
     
            }
            for (h=10; h <11; h++) {
     
            fgets(ligne,256,ftemps);
            if ( sscanf(ligne,"%d",&Wp) != 1 ) {
                //erreur
            }
     
            }
            //ne pas oublier de fermer le fichier
            fclose(ftemps);
     
     
     
     
     
            fp = fopen("mess_Ci.txt","r");
     
    	// test l'existance du fichier texte
    	if ((fp = fopen("mess_Ci.txt","r")) == NULL)
    	{
    		printf("Impossible d'ouvir le fichier\n\n");
    		return 0;
    	}
     
    	else
    	{
    		// Calcule le nombre de lignes dans le fichier texte
    		while(fgets(ligne_lue, sizeof(ligne_lue), fp) != NULL)
    		{
    			nombre_de_ligne++;
    		}
     
    		// Positionne le curseur au début du fichier
    		fseek(fp,0,SEEK_SET);
     
    		for ( i = 0 ; i < nombre_de_ligne ; i++)
    		{
    			 fgets(ligne,256,fp);
            if ( sscanf(ligne,"%d",&C[i]) != 1 ) {
                //erreur
            }
     
            }
    		fclose(fp);
     
    }
     
    nb = nombre_de_ligne ;
     
     
    printf("W puissance -1  est charge ! Wp = %d  et M est chargé aussi M = %d\n\n",Wp,M);
     
     
    for ( i=0 ; i < nb ; i++ ){
        printf ("La valeur %d  du message code est charge en C%d = %d\n", i+1 , i+1, C[i] );
    }
     
    printf("\n\n\n");
     
     
    for ( i=0 ; i < 8 ; i++ ){
        printf ("La valeur %d  du de la suite supercroissante A(%d) = %d\n", i+1 , i+1, A[i] );
    }
     
    printf("\n\n\n");
     
     
     
            FILE* ftemps2=NULL;
            ftemps2 = fopen("permut.txt","r");
     
            // attention, il faut verifier que l'ouverture du fichier s'est bien faite
            if ( ftemps2 == NULL ) {
            //erreur
            }
     
     
     
     
            for (h=0; h <8; h++) {                  //la suite Ai stocker dans les 8 premieres lignes du fichier ne nous sont pas
                                                    //ici on parcour simplement le fichier .
     
            fgets(ligne,256,ftemps2);
            if ( sscanf(ligne,"%d",&perm[h]) != 1 ) {
                //erreur
            }}
     
            fclose(ftemps2);
     
     
    for ( i=0 ; i < 8 ; i++ ){
        printf ("La valeur %d  de la permute est = %d\n", i+1 ,  perm[i] );
    }
     
    printf("\n\n\n");
     
     
    system("pause");
    //system("cls");
     
    for (y=0 ; y < 400 ; y ++ ) {
        for (z = 0 ; z < 8 ; z++){
            Bin[y][z] = 0 ;
        }
    }
     
    //int ind_l, ind_c ;   //pour afficher Bin 
     //ind_l = 0;
      //while(ind_l < 400){
        //ind_c = 0;
        //while(ind_c < 8){
          //printf("%d ", Bin[ind_l][ind_c]);
          //ind_c++;
        //}
        //printf("\n");
        //ind_l++;
      //}
     
     
     
     
     
    for (k=0; k<8 ; k++ ) {
        nbtest = perm[k] - 1 ;
        Ap[k]= A[nbtest] ;
    }
     
     
    for ( k=0 ; k < 8 ; k++ ){
        printf ("La valeur %d  de la permute est de Ai est :%d\n", k+1 ,  Ap[k] );
    }
     
     
     
    for ( v=0 ; v< nb ; v++){
        X[v] = (C[v] * Wp)%M ;
        printf(" voici la valeur du produit CI*wp %d\n",X[v]);
    }
     
    for ( z=0; z< nb; z++) {
        p==7;
        while (X[z]>0||p>0) {
     
              if (A[p]< X[z]) {
                       X[z]= X[z]- A[p];
                       Res[s]= X[z];
                       imax=s;
                       s++ ;
                       p==p-1;
                       }
     
              else {
                   p==p-1;
                   }
     
        for ( s=0; s<imax; s++){
            for ( k=0; k<8; k++){
                if ( Res[s]==Ap[k]) {
                     Bin[z][k]=1;
                     }
                }
            }
       int ind_l, ind_c ;   //pour afficher Bin 
       ind_l = 0;
      while(ind_l < 400){
        ind_c = 0;
        while(ind_c < 8){
          printf("%d ", Bin[ind_l][ind_c]);
          ind_c++;
        }
        printf("\n");
        ind_l++;
      }
     
     
     
    system("pause");
     
    }}}

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 613
    Points : 406
    Points
    406
    Par défaut
    Quand tu dis que le compilateur bug, ca veut dire quoi ?
    Moi je n'ai pas d'erreur de compilation avec ton code.

    Par contre tu ne gère aucune erreur (juste des commentaires pour dire qu'il y a une erreur à certains endroit du programme).
    Donc comment veut tu voir à quel endroit ton programme butte sur une erreur ?
    Rajoute des printf à ces endroits là, c'est un minimum. Il faudrait aussi quitter en cas d'erreur

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 5
    Points : 2
    Points
    2
    Par défaut re: bug
    A la base c'etai une plaisanterie pournepas dire qe c'etai moi qui ne pouvai coder ce que je voulais... Chez moi le compilateur execute le programme correctement jusqu'à la patie du produit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf(" voici la valeur du produit CI*wp %d\n",X[v]);
    puis windows me renvoie un message d'erreur je ne sai pk et la console se ferme direct apres avoir cliqué "ne pas envoyé" . Donc laje vois bien la ou ne ca va pas c'est a partir de ce bout
    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
    39
    40
    for ( z=0; z< nb; z++) {
        p==7;
        while (X[z]>0||p>0) {
     
              if (A[p]< X[z]) {
                       X[z]= X[z]- A[p];
                       Res[s]= X[z];
                       imax=s;
                       s++ ;
                       p==p-1;
                       }
     
              else {
                   p==p-1;
                   }
     
        for ( s=0; s<imax; s++){
            for ( k=0; k<8; k++){
                if ( Res[s]==Ap[k]) {
                     Bin[z][k]=1;
                     }
                }
            }
       int ind_l, ind_c ;   //pour afficher Bin 
       ind_l = 0;
      while(ind_l < 400){
        ind_c = 0;
        while(ind_c < 8){
          printf("%d ", Bin[ind_l][ind_c]);
          ind_c++;
        }
        printf("\n");
        ind_l++;
      }
     
     
     
    system("pause");
     
    }}}

Discussions similaires

  1. Algorithme de tri : Bin Packing 1D (Sac à dos)
    Par fredschmidt dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 23/01/2015, 12h50
  2. Sac à dos et algorithme génétique
    Par DrSnake dans le forum Algorithmes et structures de données
    Réponses: 11
    Dernier message: 30/11/2009, 21h58
  3. Compréhension d'un algorithme sur le problème du sac à dos
    Par Treuze dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 18/12/2006, 15h26
  4. Sac à dos
    Par JeanRaviol dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 21/11/2002, 11h18

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