FWT学习笔记

Posted zzyer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FWT学习笔记相关的知识,希望对你有一定的参考价值。

模板

or运算

void FWT(int *a,int n,int f){
	for(int k=1;k<n;k<<=1){
		for(int i=0;i<n;i+=(k<<1)){
			for(int j=0;j<k;++j){
				if(f==1)a[i+k+j]+=a[i+j];
				else a[i+k+j]-=a[i+j];
			}
		}
	}
}

 

and运算

void FWT(int *a,int n,int f){
	for(int k=1;k<n;k<<=1){
		for(int i=0;i<n;i+=(k<<1)){
			for(int j=0;j<k;++j){
				if(f==1)a[i+j]+=a[i+j+k];
				else a[i+j]-=a[i+j+k];
			}
		}
	}
}

 

xor运算

 

void FWT(int *a,int n,int f){
	for(int k=1;k<n;k<<=1){
		for(int i=0;i<n;i+=(k<<1)){
			for(int j=0;j<k;++j){
				int t1=a[i+j],t2=a[i+j+k];
				if(f==1){
					a[i+j]=t1+t2;
					a[i+j+k]=t1-t2;
				}else{
					a[i+j]=(t1+t2)/2;
					a[i+j+k]=(t1-t2)/2;
				}
			}
		}
	}
}

 

用法

变换->相乘->逆变换

 

以上是关于FWT学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记:python3,代码片段(2017)

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

DOM探索之基础详解——学习笔记

FWT 等总结

学习笔记 链接

ReactJs学习笔记01