基於遞歸思想的組合、H變換等幾個算法實現

廢話不說了直接上代碼

//求組合數的代碼

#include "stdio.h"

int combinat[1000]={0};

void Comb(int m,int k)
{
int i,j;
for (i=m;i>=k;i--)
{
combinat[k]=i;
if (k>1)
Comb(i-1,k-1);
else
{
for (j=combinat[0];j>0;j--)
printf("%d ",combinat[j]);
printf("\n");
}
}
}


void main()
{
int ;
combinat[0]=6;
Comb(12,6);

}


//求H變換的代碼

void Hadamard(int *f,int n,int mod)
{
if (n==1)
return;
for (int i=0;i<n/2;i++)
{
*(f+i)+=*(f+n/2+i);
*(f+n/2+i)=(*(f+i)-2**(f+n/2+i))/mod;
*(f+i)/=mod;
}
Hadamard(f,n/2,mod);
Hadamard(f+n/2,n/2,mod);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章