生成洗序表.cpp

来自「快速傅里叶变换fft算法」· C++ 代码 · 共 47 行

CPP
47
字号
//整体替换main函数

void tables_generater()
{
	int i, j,l,k,n,m,mr,nn;

    for(i=2;i<=10;i++)
    {
        n = 1 << i;
        mr = 0;
		j = 1;
		k = 0;
        nn = n - 1;
		printf("%s%d%s\n","short r_Table",n,"[]={");

        for (m=1; m<=nn; ++m)
        {
            l = n;
            do
            {
                l >>= 1;
            } while (mr+l > nn);
			
			//判断现在计算出来的mr是否和前面的m重复
            mr = (mr & (l-1)) + l;
            if (mr <= m)
                continue;

             if(m==1)
			 {  printf("%d%s%d",m,",",mr);k++;}
			 else
			 {  printf("%s%d%s%d",",",m,",",mr);k++;}

			//控制输出格式			
			 j++;
			 if(j % 10 == 0)
			 { printf("\n");j=1;}
        }
		//输出矩阵的大小2K
		printf("%s\n%d\n","};",2*k);
    }
}
void main()
{
	tables_generater();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?