回朔与查找分析和总结.docxVIP

  • 1
  • 0
  • 约9.84千字
  • 约 9页
  • 2023-05-04 发布于上海
  • 举报
PAGE PAGE 1 回朔算法 1、本程序在3*3 防个中填入数字 0~N 内的某 9 个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数,试求出满足这个要求的所有填法,如 0 1 2 3 4 5 6 7 8 int b[13]; int pos; int a[9]; checkm[][3]={{-1},{0,-1},{1,-1},{0,-1},{1,3,-1},{2,4,-1},{3,-1},{4,6,-1},{5,7,-1}}; void write(int a[]) { int i,j; for(i=0;i3;i++) {for(j=0;j3;j++) printf(“%3d”,a[3*i+j]); printf(“\n”);}} int isprime(int m) { int i; if(m==2) return 1; if(m==1||m%2==0) return 0; for(i=3; i*i=m; ) { if(m%i==0) return 0; i+=2;} return 1; } int selectnum(int start) { int j; for(j=start;j=12;j++) if(b[j]) return j; return 0; } int check() { int i,j; for(i=1;(j= (1) )=0;i++) if(!isprime(a[pos]+a[j])) (2) ; (3) ; } extend() { a[ (4) ]=selectnum(1); b[a[pos]]=0;} void change() { int j; while(pos=1(j=selectnum( (5) ))==0) (6) ; if(pos0) return; b[a[pos]]=1; a[pos]=j; b[j]=0; } find() {int ok=1; pos=0; a[pos]=1; b[a[pos]]=0; do{ if(ok) if( (7) ) {write(a); change(); } else extend(); else change(); ok=check(pos);}while(pos=0);} void main() { int i; for(i=1;i=12;i++) b[i]=1; find(); } 2、 A B F 6 1 4 C D E 3 2 5 将 A、B、C、D、E、D6 个变量排成如图 1,这 6 个变量分别取[1,6]上的整数,且各不相同,找出使三角形三条边上的三个数之和相等的所有解。 int A,B,C,D,E,F; int *pt[]={A,B,C,D,E,F}; main() { int b[7],j,k,c=0; for(j=0;j=6;j++) b[j]=0; k=0;j=1; while(1) {if(!b[j]) {b[ (1) ]=1; if(k6-1) {k++; j=1; continue;} if(A+B+C==C+D+EA+B+C==E+F+A) {printf(“%d\n\t\t%6d\n\t\t%4d%4d\n\t\t%2d%4d%4d\n\n”,++c,A,B,F,C,D,E); scanf(“%*c”);} do{ b[*pt[ (2) ]]=0; if(k0) (3) ; for(j=*pt[k]+1; (4) ;j++); if( (5) ) break; }while(1); if(k0) break; b[*pt[ (6) ]]=0; j= (7) ; } else while(++j=6b[j]);}} 3、本程序列举从整数 0 到 n-1 中任取 r 个整数的所有组合。设求得组合中的各数分别存储 于数组 C 的 C ,C ,…C 中,并假定 C C …C ,则 C =n-r+i(0=ir)。如,n=5,r=3, 0 1 r-1 0 1 r-1 i 则产生序列 012,013,014,023,024,034,123,124,134,234。 void enumall(int n,int r) { int i,j,c[100]; for(j=0;jr;j++) c[j]=j; for(j=0;jr;j++) printf(“\t%d”,c[j]); printf(“\n”); i= (1) ; do{ if( (2) ) { c[i]++; for(j= (3) ;jr;j++) (4) ; main() for(j=0;jr;j++) printf(“\t%d”,c[j]); print

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档