Accueil > Forum > > > > liste des n-uplets d'un ensemble a nb element
liste des n-uplets d'un ensemble a nb element
vendredi 17 mars 2006 à 12:26:38 |
liste des n-uplets d'un ensemble a nb element

alussk
|
voila mon probleme:
soit E un ensemble et card(E)=nb;
mon programme doit calculer la liste de toutes les combinaisons possibles a n elements
j'avais pensé faire ca avec un rand() donc g redefini RAND_MAX mais ca ne passe pas (le rand me sort des valeurs dans ce genre :s 41184676334265001916915724)
donc j'aimerais savoir si quelqu'un connait un myen plus systematique (et plus fiable) de calculer les n-uplets d'un ensemble
NB: j'ai chercher sur google, mais vu mon niveau en math la plupart des sites mon embrouillé
|
|
vendredi 17 mars 2006 à 12:51:05 |
Re : liste des n-uplets d'un ensemble a nb element

alussk
|
oops j'aurais ptet du parcourir le forum avant...
enfin bref maintenant g un autre probleme
j'ai coder cette fonction:
void six_uplet_alphB(char *chaine){
int i,c,j,k,l,m,n;
char alphab[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z'};
FILE *Fchaine;
if((Fchaine=fopen("C:\\Documents and Settings\\Administrateur\\Bureau\\ssk,log.txt","w+"))==NULL){
printf("ERREUR D'OUVERTURE DU FICHIER DE SAUVEGARDE");
}
for(i=0;i<26;i++){
for(j=i+1;j<26;j++){
for(k=j+1;k<26;k++){
for(l=k+1;l<26;l++){
for(m=l+1;m<26;m++){
for(n=m+1;n<26;n++){
chaine[0]=alphab[i];
chaine[1]=alphab[j];
chaine[2]=alphab[k];
chaine[3]=alphab[l];
chaine[4]=alphab[m];
chaine[5]=alphab[n];
for(c=0;c<6;c++);
fprintf(Fchaine,"%c",chaine[c]);
fprintf(Fchaine,"\n");
}
}
}
}
}
}
}
mais rien ne s'affiche dans le fichier... je vois pas trop pourquoi, donc plz help
|
|
samedi 18 mars 2006 à 01:27:28 |
Re : liste des n-uplets d'un ensemble a nb element

Guillemouze
|
heu la tu genere pas tous les combinaisons, mais seulement celles dont les lettres qui precedent sont inferieurs a celles qui suivent. si tu les veu toutes, tu peu faire:
void six_uplet_alphB(char *chaine){ int i,c,j,k,l,m,n; FILE *Fchaine; Fchaine = fopen("C:\\Documents and Settings\\Administrateur\\Bureau\\ssk,log.txt","w+"); if(Fchaine == NULL){ printf("ERREUR D'OUVERTURE DU FICHIER DE SAUVEGARDE"); return; } for(i=0;i<26;i++){ chaine[0]=(char)(i+67); //i+67 doit etre le code ASCII de ta lettre for(j=0;j<26;j++){ chaine[1]=(char)(j+67); // il me semble que 67 est le code de "a"
for(k=0;k<26;k++){ chaine[2]=(char)(k+67);//si c pas le cas, remplace 67 par le bon code
for(l=0;l<26;l++){ chaine[3]=(char)(l+67);
for(m=0;m<26;m++){ chaine[4]=(char)(m+67);
for(n=0;n<26;n++){ chaine[5]=(char)(n+67); fprintf(Fchaine,"%s\n",chaine); } } } } } } }
|
|
samedi 18 mars 2006 à 01:28:35 |
Re : liste des n-uplets d'un ensemble a nb element

Guillemouze
|
heuuuu oublie pas de declarer
char chaine[5];
aussi
|
|
samedi 18 mars 2006 à 01:28:59 |
Re : liste des n-uplets d'un ensemble a nb element
|
samedi 18 mars 2006 à 02:16:05 |
Re : liste des n-uplets d'un ensemble a nb element

alussk
|
Je vois le principe,
j'avais déja corrigé (et oublié que j'avais posté xD)
et ca donnait ca:
for(i=0;i<26;i++){
for(j=0;j<26;j++){
for(k=0;k<26;k++){
for(l=0;l<26;l++){
for(m=0;m<26;m++){
for(n=0;n<26;n++){
chaine[0]=alphab[i];
chaine[1]=alphab[j];
chaine[2]=alphab[k];
chaine[3]=alphab[l];
chaine[4]=alphab[m];
chaine[5]=alphab[n];
chaine[6]='\0';
}
}
}
}
}
}
franchement je serais tenté de dire que ca revient au meme, mais vu que j'ai pa pu tester.. ca ma donner un .txt de 600Mo(bizarre?) qui m'a planté le notepad...
donc vala si ce n'est pas la meme, ou tout simplement si c'est moins bien dis le moi
|
|
samedi 18 mars 2006 à 02:26:28 |
Re : liste des n-uplets d'un ensemble a nb element

Guillemouze
|
Réponse acceptée !
c peut etre normal. tu a 266 possibilites, soit 308.915.776 si tu multiplie par le nombre de caracteres pour chaque possiblilites (6 lettres + 1 retour) = 2.162.410.432 caracteres si ton caracter fait 1 octet, ca fait 2.162.410.432 octets, soit 2.111.728 Ko, 2.062 Mo, 2Go, donc c bizar ton fichier est un petit peu petit, si jme trompe pas !!!
A part ca , il vaut mieux que tu remplace chaine[X] = alphab[Y] par chaine[X] = (char) (67 + Y) et que tu fasse cette affectation juste apres la boucle for (Y=0; Y<26;Y++) pour minimiser le nombre doperations
|
|
samedi 18 mars 2006 à 02:40:11 |
Re : liste des n-uplets d'un ensemble a nb element

Guillemouze
|
ce que je te conseille c de faire un arbre dans le genre
typedef struct { char lettre; Noeud *fils[26]; } Noeud;
Noeud* racine;
racine = rempliArbre(' ', 6);
Noeud* rempliArbre(char val, int prof); if (prof == 0) return NULL; Noeud* tmp = malloc(sizeof(Noeud)); tmp->lettre = val; for (i=0;i<26;i++) { tmp->fils[i] = rempliArbre((char)(67+i), prof-1); } return tmp; }
et pour lister, t'a plus qu'a parcourir l'arbre
|
|
samedi 18 mars 2006 à 03:11:53 |
Re : liste des n-uplets d'un ensemble a nb element

alussk
|
ouaou, je connais pas encore les structures mais bon on dira que c'est le moment de s'y mettre, par contre je te demanderai juste une derniere info, avec ta methode on le parcous comment l'arbre?
|
|
samedi 18 mars 2006 à 04:55:01 |
Re : liste des n-uplets d'un ensemble a nb element

Guillemouze
|
bah si tu veu afficher toutes les possibilites a l'ecran, tu fai
char buffer[7]; buffer[6] = 0; void afficher(Noeud* noeud, char *buffer, int prof) { if (prof == 0) printf("%s\n", buffer); else { buffer[5-prof] = noeud->lettre; for (i=0;i<26;i++) afficher(noeud->fils[i], buffer, prof-1); } }
a quelques choses pret ca doit etre un druc dans ce genre.
mais l'utilisation d'un arbre depend aussi des traitement que tu veu en faire apres. peut etre que c'est pas utile!!!
|
|
Cette discussion est classée dans : liste, rand, nb, ensemble, uplets
Répondre à ce message
Sujets en rapport avec ce message
URGENT : transposer du C en Caml [ par torgal79 ]
Salut Voila mon probleme. On m'a filé un prog en c et j'y connais rien a ce langage. Et mon boulot est de le transposer en caml et c'est super urgent.
rand() ca marche pas!!! [ par Arnaud16022 ]
hello je voudrais savoir pourquoi ce prog donne toujours la meme liste de resultats:#include #include int main(){ for (int a=0;a!=10;a++){
Classe - Liste Chainees [ par snoozriton ]
Bonjour à tous, je me retrouve bloqué et je ne vois pas trop comment me décoincer. Il s'agit d'un exercice à faire. Dans cet exercice nous avons des E
Nb Aléatoire sans rand() [ par badboy38 ]
Bonjour,je viens de "feuilleter" le forum à la recherche de la perle rare, mais..... enfin, voila mon problème: je dois générer un nombre aléatoire en
pb liste [ par mat74 ]
salut a ts ,j'ai essayer de faire une fonction avec des liste en param et sa marche pas .int nb_element_liste (std::list liste_teste,std::list it_test
aide sur les concensus [ par torgal79 ]
salut voila je suis tres novice en langage c et je dois comprendre un code portant sur la methode des concensus.Mais le probleme c'est que mes bases
le flag undo dans un edit [ par julienbj ]
J'ai un petit souci avec les undo et redo dans un richedit. J'aimerais pouvoir désactiver certaines actions de la liste des undo. Je m'explique, je su
VC++ .Net - liste chainee [ par slim01 ]
bonjour, dans un exercice je dois creer une liste chainée d'une classe (acteurs) les classes que j'ai créé sont les suivantes : liste - element - a
Probleme de taille d'une liste chainee static qui varie ... [ par rick_moins_moins ]
Bonjour,j'ai besoin de faire une liste chainee dans mon programme afin de cataloguer tous les objets de mon projet. Pour cela ma liste chainee est st
Liste chainée en C++ [ par toitoine01 ]
Bonjour ds le cadre de ma formation je doit réalisée un projet gestion d'une université j'utilise pour cela une liste chainée pour gerer les enseignan
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|