设多项式的系数按幂次由高到低的顺序于一数组中,函数设PA,PB分别指向两个多项式的系数。
幂次存于另变量中,设分别为an,bn现在我的问题是其具体相除 实现细节看不懂谁能帮帮我?感激不尽!!!!细节如下:
int Remainder(double*pA, int an,double*pB, int bn,double**q)
{double x,y,*temp;
 int k,j,flg=1;
 if(an<bn){
   temp=pA;pA==pB;pB=temp;  
   k=an;an=bn;bn=k;
  }
  while(flg){
      while(*pB==0.0&&bn>0){
         bn--;pB++;
       }
       k=0;x=*pB;
       while(k<=bn)pB[k++]/=x;
       for(k=0;k<=an-bn;k++){***以下九行看不懂,感激不尽!!!!
           x=pA[k];
           for(j=0;j<bn;j++){
              y=pA[k+j+1]-x*pB[j+1];
              pA[k+j+1]=(y<0.00005&&-y<0.00005)?0.0:y;
              }
             }
        temp=pA;pA=pB;pB=temp+an-bn+1;an=bn--;
        for(flg=0,k=0;k<=bn&&flg==0;k++)
             if(pB[k]!=0.0) flg=1;
   }
 *q=pA;
 return an;
}
  

解决方案 »

  1.   

    paste for u 设多项式的系数按幂次由高到低的顺序于一数组中,函数设PA,PB分别指向两个多项式的系数。
    幂次存于另变量中,设分别为an,bn现在我的问题是其具体相除 实现细节看不懂谁能帮帮我?感激不尽!!!!细节如下:
    int Remainder(double*pA, int an,double*pB, int bn,double**q)
    {double x,y,*temp;
     int k,j,flg=1;
     if(an<bn){
       temp=pA;pA==pB;pB=temp;  
       k=an;an=bn;bn=k;
      }
      while(flg){
          while(*pB==0.0&&bn>0){
             bn--;pB++;
           }
           k=0;x=*pB;
           while(k<=bn)pB[k++]/=x;
           for(k=0;k<=an-bn;k++){***以下九行看不懂,感激不尽!!!!
               x=pA[k];
               for(j=0;j<bn;j++){
                  y=pA[k+j+1]-x*pB[j+1];
                  pA[k+j+1]=(y<0.00005&&-y<0.00005)?0.0:y;
                  }
                 }
            temp=pA;pA=pB;pB=temp+an-bn+1;an=bn--;
            for(flg=0,k=0;k<=bn&&flg==0;k++)
                 if(pB[k]!=0.0) flg=1;
       }
     *q=pA;
     return an;
    }
      
      

  2.   

    看看谭好强老师的BASIC语言好像有这个