facetoface
دوشنبه 25 تیر 1386, 06:42 صبح
برای این الگوریتم می خواهم
با سپاس فراوان.}
مجموع زیر مجموعه ها
مسئله: تعیین همه ی ترکیبات اعداد صحیح موجوددر یک مجموعه ی n عدد صحیح، به طوری که حاصل جمع آنها مساوی مقدار معین w شود.
ورودی: عدد صحیح مثبت N ، آرایه ی مرتب به ترتیب غیر نزولی از اعداد صحیح مثبتw که از 1 تا n اندیس گذاری شده اند و عدد صحیح مثبت w.
خروجی : همه ی ترکیبات اعداد صحیح که حاصل جمع آنها مساوی w شود.
Void m-color ( index i)
{
int color;
If (promising (i))
If (I = n)
Cout << vcolor[1] to vcolor[n];
Else
For (color = 1 to color<= m){ // try every color for
Vcolor[i+1] = color; // next vertex
M-color( i+1);
}
}
bool promising (index i)
{
index j;
bool switch;
switch = true;
j=1;
while ( j<I && switch) { // chech if an adjacent
if (w[i][j] && vcolor[j] = vcolor[j] ) // vertex is alredy this color
switch = false;
j++;
}
return switch ;
}
با سپاس فراوان.}
مجموع زیر مجموعه ها
مسئله: تعیین همه ی ترکیبات اعداد صحیح موجوددر یک مجموعه ی n عدد صحیح، به طوری که حاصل جمع آنها مساوی مقدار معین w شود.
ورودی: عدد صحیح مثبت N ، آرایه ی مرتب به ترتیب غیر نزولی از اعداد صحیح مثبتw که از 1 تا n اندیس گذاری شده اند و عدد صحیح مثبت w.
خروجی : همه ی ترکیبات اعداد صحیح که حاصل جمع آنها مساوی w شود.
Void m-color ( index i)
{
int color;
If (promising (i))
If (I = n)
Cout << vcolor[1] to vcolor[n];
Else
For (color = 1 to color<= m){ // try every color for
Vcolor[i+1] = color; // next vertex
M-color( i+1);
}
}
bool promising (index i)
{
index j;
bool switch;
switch = true;
j=1;
while ( j<I && switch) { // chech if an adjacent
if (w[i][j] && vcolor[j] = vcolor[j] ) // vertex is alredy this color
switch = false;
j++;
}
return switch ;
}