SOS algorithme
coco
-
coco -
coco -
Bonjour,
slt tt le monde ca fait un moment que cherche a touver un algorithme mais je arrive pas ,je sais po pourkoi ,a premier vue il doit pas etre tres dur mais moi je bogue completement ,alors c vous pourraier m'aider ou me donner juste une aide commet faire,
voila le probleme :
suppose que tu as n urnes (sac..) identique et n balles differentes et tu veut avoir tt les cas possible de distribution de ces balle sur ses urnes , exemple
c tu as 2 urnes alors tu as 2 balles ----> 2 cas :
1 cas : urnes 1 contient la balle 1 et l 'urne 2 contient la balle 2 (ou contrire )
2 cas :urne 1 contient les deux balle (c pareil que urne 2 contient les 2 balle puisque identique )
pour 3 urnes et 3 balles on a 5 cas
pour 4 on a 15 cas
pour 5 on a 40 cas
je cherche a le codé en C
pour la prtie calcul de nombre de cas j ai fait deja ca ,
moi je cherche a affecter pour chaque cas les balle et suvgarder tt les cas ,pour pour pouvoir les afficher c-a-d si je veut verifier les belle de 1 er cas il doit m afficher que j ai la belle 1 dans l 'urnes 1 et la belle 2 dans l urne 2;
pour 3 urnes et 3 balle c 5 cas •
cas 1 • U1=(balle1), U2=(balle 2), U3=(belle 3),
cas 2• U1=(1,2), U2=(3),
cas 3• U1=(1,3), U2=(2),
cas4• U1=(2,3), U2=(1),
cas 5• U1=(1,2,3),
pour ma part moi j ai consederé les cas comme des sequence alors j essyer de le faire sous forme de structure avec des place pour mettre les balles
juste pour rappel llaffecation U1=(1,2) ,U2=( ) ,U3=(3) , et pariel que U1 =( ) , S2=(1,2) ,U3=(3)
j espere ke c clair maintenant
merci d'avance pour votre aide
slt tt le monde ca fait un moment que cherche a touver un algorithme mais je arrive pas ,je sais po pourkoi ,a premier vue il doit pas etre tres dur mais moi je bogue completement ,alors c vous pourraier m'aider ou me donner juste une aide commet faire,
voila le probleme :
suppose que tu as n urnes (sac..) identique et n balles differentes et tu veut avoir tt les cas possible de distribution de ces balle sur ses urnes , exemple
c tu as 2 urnes alors tu as 2 balles ----> 2 cas :
1 cas : urnes 1 contient la balle 1 et l 'urne 2 contient la balle 2 (ou contrire )
2 cas :urne 1 contient les deux balle (c pareil que urne 2 contient les 2 balle puisque identique )
pour 3 urnes et 3 balles on a 5 cas
pour 4 on a 15 cas
pour 5 on a 40 cas
je cherche a le codé en C
pour la prtie calcul de nombre de cas j ai fait deja ca ,
moi je cherche a affecter pour chaque cas les balle et suvgarder tt les cas ,pour pour pouvoir les afficher c-a-d si je veut verifier les belle de 1 er cas il doit m afficher que j ai la belle 1 dans l 'urnes 1 et la belle 2 dans l urne 2;
pour 3 urnes et 3 balle c 5 cas •
cas 1 • U1=(balle1), U2=(balle 2), U3=(belle 3),
cas 2• U1=(1,2), U2=(3),
cas 3• U1=(1,3), U2=(2),
cas4• U1=(2,3), U2=(1),
cas 5• U1=(1,2,3),
pour ma part moi j ai consederé les cas comme des sequence alors j essyer de le faire sous forme de structure avec des place pour mettre les balles
juste pour rappel llaffecation U1=(1,2) ,U2=( ) ,U3=(3) , et pariel que U1 =( ) , S2=(1,2) ,U3=(3)
j espere ke c clair maintenant
merci d'avance pour votre aide
A voir également:
- SOS algorithme
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Logiciel algorithme gratuit - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
46 réponses
Error : pointer/array required
main.c line 56 tabsquence[*g]->tabmachine[numachine]->tabordo[k]->numjob=numtache;
Error : cannot convert
'struct squence (*)[15]' to
'int *'
main.c line 115 Recherche( &tabsquence,&g);
je recoit ces deux erreur mais je comrend pas ce que ca veut dire
main.c line 56 tabsquence[*g]->tabmachine[numachine]->tabordo[k]->numjob=numtache;
Error : cannot convert
'struct squence (*)[15]' to
'int *'
main.c line 115 Recherche( &tabsquence,&g);
je recoit ces deux erreur mais je comrend pas ce que ca veut dire
Est-ce que tu pourrais expliquer en français ce que tu veux faire, parce qu'avec ton code C, je ne vois pas du tout quel est ton but, ni de quelle façon tu utilises la première partie de ton problème
il faut voir les urnes comme des machines et les boule comme des taches ou cahque tache a ces catreristiques
la 1 er partie consiste a genere toute les possibilite s d'ffectation des tache aux machines , lalgo que tu as fait deja .
la seconde il faut que je prend chaque sequence (cas ) avec les machine (urne) et pour chaque machine les tache que elle a traiter ,puis pour chaque cas je doit calcule un critre d'optimisation (c'est une autre fonction ) et au final il faut que j arrive a avoir le num de la sequance les taches traiter et dans quelle machine sont traiter
je crois ke c clair maintenant
la 1 er partie consiste a genere toute les possibilite s d'ffectation des tache aux machines , lalgo que tu as fait deja .
la seconde il faut que je prend chaque sequence (cas ) avec les machine (urne) et pour chaque machine les tache que elle a traiter ,puis pour chaque cas je doit calcule un critre d'optimisation (c'est une autre fonction ) et au final il faut que j arrive a avoir le num de la sequance les taches traiter et dans quelle machine sont traiter
je crois ke c clair maintenant
Je pense pas qu'il y ait grand chose à changer dans le code 26 (hormis la conversion du C++ au C et les notations urne=machine, boule=tâche, solution=séquence)
En rajoutant une variable globale int Cpt=0; et une structure :
struct cas={int num_sequence; sequence s; critere_optimisation c; };
Je dirais qu'il faudrait compléter Enregistrer(solution s; int M) à peu près comme ça :
{
num_sequence= ++Cpt; // numéro de séquence
cas.s=s;
cas.c=optimisation(s);
}
En rajoutant une variable globale int Cpt=0; et une structure :
struct cas={int num_sequence; sequence s; critere_optimisation c; };
Je dirais qu'il faudrait compléter Enregistrer(solution s; int M) à peu près comme ça :
{
num_sequence= ++Cpt; // numéro de séquence
cas.s=s;
cas.c=optimisation(s);
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
slt
j essyer de faire un exemple avec la structure pour le 1 er cas ca marche
mais pour le 2 cas il excute la boucle for (numtache=0; numtache<nbtache; numtache++) just pour numtache =0 ,et puis il s'arret ( il n'incremente pas numtache) ,
je sais pas porkoi
typedef Bool solution[Nm][Nm];
//la tache numtache est dans la machine numachine si s[numtache-1][numchine-1] est vrai
void Enregistrer(solution s, int M, int *g,struct squence *tabsquence ) // ici un simple affichage, modifiable à volonté
{
int numtache,numachine,k,machinit;
k=0;
machinit=0;
for (numachine=0; numachine<M; numachine++)
{
printf("Machine %d : ",numachine );
for (numtache=0; numtache<nbtache; numtache++){ --------------------------> ici
if (s[numachine][numtache]==true){
printf(" %d ",numtache);
if (numachine==machinit){
tabsquence[*g].tabmachine[numachine].tabordo[k].numjob=numtache;
k++ ;
}
else machinit=numachine;
tabsquence[*g].tabmachine[numachine].tabordo[0].numjob=numtache;
k=1;
}
}
printf("\n");
}
*g=*g+1;
printf("\n");
}
j essyer de faire un exemple avec la structure pour le 1 er cas ca marche
mais pour le 2 cas il excute la boucle for (numtache=0; numtache<nbtache; numtache++) just pour numtache =0 ,et puis il s'arret ( il n'incremente pas numtache) ,
je sais pas porkoi
typedef Bool solution[Nm][Nm];
//la tache numtache est dans la machine numachine si s[numtache-1][numchine-1] est vrai
void Enregistrer(solution s, int M, int *g,struct squence *tabsquence ) // ici un simple affichage, modifiable à volonté
{
int numtache,numachine,k,machinit;
k=0;
machinit=0;
for (numachine=0; numachine<M; numachine++)
{
printf("Machine %d : ",numachine );
for (numtache=0; numtache<nbtache; numtache++){ --------------------------> ici
if (s[numachine][numtache]==true){
printf(" %d ",numtache);
if (numachine==machinit){
tabsquence[*g].tabmachine[numachine].tabordo[k].numjob=numtache;
k++ ;
}
else machinit=numachine;
tabsquence[*g].tabmachine[numachine].tabordo[0].numjob=numtache;
k=1;
}
}
printf("\n");
}
*g=*g+1;
printf("\n");
}