考虑一个CSP,其中有八个变量A,B,C,D,E,F,G,H,每个变量都具有域{1、2、3、
4}。假设约束为:A≥G,A <H,| F – B |= 1,G <H,| G – C |= 1,| H – C |是偶数,
H≠D,D≥G,D≠C,E≠C,E <D – 1,E≠H – 2,G≠F,H≠F,C≠F,D≠F,| E – F |
求各位大神帮忙跑一下,急求
#include <stdio.h>
#include <string.h>
/*
考虑一个CSP,其中有八个变量A,B,C,D,E,F,G,H,每个变量都具有域{1、2、3、
4}。假设约束为:A≥G,A <H,| F – B |= 1,G <H,| G – C |= 1,| H – C |是偶数,
H≠D,D≥G,D≠C,E≠C,E <D – 1,E≠H – 2,G≠F,H≠F,C≠F,D≠F,| E – F |
*/
int abs(int x) { if (x > 0) return x; else return -x; }
int main()
{
int a,b,c,d,e,f,g,h;
for (int a = 1; a <= 4; a++)
for (int b = 1; b <= 4; b++)
for (int c = 1; c <= 4; c++)
for (int d = 1; d <= 4; d++)
for (int e = 1; e <= 4; e++)
for (int f = 1; f <= 4; f++)
for (int g = 1; g <= 4; g++)
for (int h = 1; h <= 4; h++)
{
if (a>=g && a < h && abs(f-b)==1 && g<h && abs(g-c)==1 &&
abs(h-c) %2==0 && h!=d && d>=g&&d!=c&&e!=c&&e<d-1&&e!=h-2&&g!=f&&h!=f&&c!=f&&d!=f)
{
printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d,g=%d,h=%d\n",a,b,c,d,e,f,g,h);
}
}
return 0;
}
a=1,b=2,c=2,d=4,e=1,f=3,g=1,h=2
a=1,b=3,c=2,d=3,e=1,f=4,g=1,h=2
a=1,b=4,c=2,d=4,e=1,f=3,g=1,h=2
a=2,b=2,c=3,d=4,e=2,f=1,g=2,h=3
a=3,b=1,c=4,d=3,e=1,f=2,g=3,h=4
a=3,b=2,c=2,d=3,e=1,f=1,g=3,h=4
a=3,b=2,c=4,d=3,e=1,f=1,g=3,h=4
a=3,b=3,c=4,d=3,e=1,f=2,g=3,h=4
Press any key to continue . . .