SOS besoin d'aide programmation

zhao77 Messages postés 26 Date d'inscription vendredi 8 septembre 2006 Statut Membre Dernière intervention 7 août 2008 - 3 oct. 2006 à 11:52
zhao77 Messages postés 26 Date d'inscription vendredi 8 septembre 2006 Statut Membre Dernière intervention 7 août 2008 - 11 oct. 2006 à 01:53
<hr style="color: rgb(209, 209, 225);" size="1" />
<!-- / icon and title -->
<!-- message -->

Bonjour a tous


voila j'ai un probleme de programmation mais je ne sais pas comment faire
je suis neophite en la matiere voila mon probleme .


comment programmer ceci en C .


dans un fichier j'ai des entiers ( 10 par ligne ) ex


1 2 3 4 5 6 7 8 9 10

1 2 5 7 9 10 11 13 14 15

.....

.....

.....

dans mon programme je genere toutes les combinaisons possibles

de 1 a 25 de 10 chiffres C ( 10 25 ) ce qui fait 3 268 760 combinaisons


chaque combinaisons generé doit etre verifier avec chaque ligne de mon
fichier ( donc verifier chffre par chiffre) quand un chiffre est commun
je doit incrementer un compteur ,faire cela jusqu'a la fin des
combinaisons generées .


comment programmer ce genre de choses de façon a ce qu'il soit le plus
optimiser possible ? ( par exemple les boucles imbriquées qui sont tres
nombreuse , recursivité ... enfin bref je sais pas ;-) )


merci de votre aide

cordialement

ps) pardon pour les fautes

24 réponses

mad_love_disease Messages postés 64 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 1 juillet 2010 3
10 oct. 2006 à 09:06
Yop, je suis content de pouvoir t'aider. En fait cet id identifie la combinaison. Comme cela, au lieu de tester tout les chiffres de tes combinaisons un à un (vu qu'il y en 10, ca fait 9 + 8 + 7 +...+2 +1 tests pour savoir si deux combinaisons sont identiques, tu me suis? Cet identifiant, calculer au début du programme te permettra à l'avenir de faire qu'un seul test a chaque fois identifiant de la combinaison 1 == identifiant de la combinaison 2. Vu que ces tests vont etre fait souvent apres. Vu que tu test toutes tes combis entre elle. Il est la le gain. Je retourne au boulot, je te remet un mesage dans la journée;

@pluche.

Mad_Love_Disease
0
zhao77 Messages postés 26 Date d'inscription vendredi 8 septembre 2006 Statut Membre Dernière intervention 7 août 2008
10 oct. 2006 à 14:28
ah ok je comprends mieux ,mais attention je ne cherche pas a savoir si une COMBINAISON est egal a une autre MAIS simplement combien de chiffre il y a en commun et chaque fois qu'un chiffre de la combinaison est egal a un chiffre de la combinaison  du fichier un compteur les comptabilise , donc en theorie le fichier doit etre parcouru a chaque fois en entier a moins qu'il y a une astuce pour l'eviter mais je vois pas comment , donc a moins que j'ai mal compris ce que tu voulais dire ce n'est pas LA COMBINAISON que je teste MAIS chaque chiffre de la combinaison generer avec chaque chiffre de toutes les combinaison contenu dans le ficheir ;-)
@+ ;-)
0
mad_love_disease Messages postés 64 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 1 juillet 2010 3
10 oct. 2006 à 16:46
Ok,

Dans ce cas ce que j'ai fait est inutile , je suis désolé de t'avoir entrainer dans une mauvaise piste, peut tu me rapeller l' objectif réel de ton programme. Tu ne voulais pas savoir si tes combinaisons n'exite pas en double dans le fichier? J'ai du mal à comprendre, sorry....

Mad_Love_Disease
0
zhao77 Messages postés 26 Date d'inscription vendredi 8 septembre 2006 Statut Membre Dernière intervention 7 août 2008
11 oct. 2006 à 01:53
Bonjour Mad_Love_Disease

Ne soit pas desolé car c'est de ma faute , donc je vais preciser mon objectif .

que la combinaison soit en double cela n'as aucune importance car ce qui m'interesse c'est le nombre de chiffre en commun entre la combinaison que je genere et les combinaisons se trouvant dans le fichier ;-)
prenon un exemple :

supposons que la combinaison generer ( avec l'algo que j'ai posté )soit :
A)  1 2 3 4 5 6 9 10 11 12

et que dans mon fichier j'ai par exemple 2 combinaisons :
X)  1 2 3 7 8 10 11 14 17 18
Z)   4 6 7 9 10 12 16 17 21 23

si je fais mes tests de comparaisons je trouve que
A possede  5 chiffres en commun avec X ( 1 2 3 10 et 11)
A possede  3 chiffres en commun avec Z ( 7 10 et 17 )

donc mon compteur sera de 5 car c'est la plus grande valeur que je conserve
et je refais cette operation pour la combinaisons generer suivante jusqu'a la fin des combinaisons generer .
voila c'est tout ;-)
cordialement
@+ ;-)
0
Rejoignez-nous