void work(int m,int n) { void chen(int,int); int i,j,x; memset(b,0,sizeof(b)); b[1]=1; b[0]=1; for (i=1;i<=m;i++) { x=n-i+1; chen(x,i); } }
void js(int m,int n) { void chen(int,int); int i,x,j; for (i=0;i<=201;i++) b[i]=0; b[1]=1; len1=1; for (i=1;i<=m;i++) { x=n-i+1; chen(x,i); } }
//復号処理 OP decode(OP f,OP s){ int i,j,k; OP r={0},h={0},w,e={0}; oterm t1,t2; vec x={0}; printf("in decode\n"); r=vx(f,s); printpol(o2v(r)); // exit(1); x=chen(r); for(i=0;i<T;i++) printf("x=%d ",x.x[i]); printf("\n"); // exit(1); w=bibun(x); printpol(o2v(w)); printf("@@@@@@@@@\n"); h=ogcd(f,s); // exit(1); t1=LT(r); t2.a=t1.a; t2.n=0; w=oterml(w,t2); printpol(o2v(w)); printpol(o2v(h)); printf("%d\n",deg(x)+1); // exit(1); for(i=0;i<deg(x)+1;i++){ e.t[i].a=gf[mlt(fg[trace(h,x.x[i])],oinv(trace(w,x.x[i])))]; e.t[i].n=x.x[i]; } for(i=0;i<T;i++) printf("%d ",trace(h,x.x[i])); printf("\n"); for(i=0;i<T;i++) printf("%d ",oinv(trace(w,x.x[i]))); printf("\n"); return e; }