B_M算法的线性复杂度求解介绍了针对B-M算法进行优化的方法,通过减少计算步骤实现线性时间复杂度,提高大规模数据处理效率。
可以处理无限数据并求其线性复杂度。
LFSR(线性反馈移位寄存器)以及异或运算实现如下:
```c
unsigned char LFSRB_M(unsigned char *fun, unsigned char *seq, unsigned long Cont) {
unsigned long x;
unsigned char ch = 0x00, t = 0x00,*array;
array=(unsigned char *)malloc(Cont*sizeof(unsigned char));
for(x=0;x>(y%8));
}
t=LFSRB_M(fun,array,word(ln));
d=((((*(seq+n/8))<<(n%8)) & 0x80 ) ^t)?1:0;
free(array);
} else {
d = (((* (seq + n / 8)) <<(n % 8) & 0x80))?1:0;
}
if(d){
if(ln != 0){
lm=ln;
func=(unsigned char *)malloc(word(ln)*sizeof(unsigned char));
memcpy(func,fun,word(ln));
if(ln < (n+1-ln)){
ln=n+1-ln;
}
fmc = (unsigned char*) malloc(word(ln) * sizeof(unsigned char));
InitialDSR(fmc, word(ln));
memcpy(fmc,fm,word(lfm));
for(k=0;k>((n-m-1)%8));
fun = (unsigned char*) realloc(fun,word(ln)*sizeof(unsigned char));
for(k=word(lm);k>(place(ln)));
}
n++;
printf(\t<%d,%d>,n,ln); fprintf(fmm,\t=<%d,%d,%d>,n,d,ln);
if(n % 3 ==0) {
printf(\n);fprintf(fmm,\n);
}
}
printf(\nFn=);
*Rank=