FFT的一种迭代实现
struct Complex
{
double x,y;
Complex(double x1=0.0 ,double y1=0.0)
{
x=x1;
y=y1;
}
Complex operator -(const Complex &b)const
{
return Complex(x-b.x,y-b.y);
}
Complex operator +(const Complex &b)const
{
return Complex(x+b.x,y+b.y);
}
Complex operator *(const Complex &b)const
{
return Complex(x*b.x-y*b.y,x*b.y+y*b.x);
}
};
void change(Complex y[],int len)
{
int i,j,k;
,j=len/;i<len-;i++)
{
if(i<j)swap(y[i],y[j]);
k=len/;
while(j>=k)
{
j-=k;
k/=;
}
j+=k;
}
}
void FFT(Complex y[],int len,int on)
{
change(y,len);
;h<=len;h<<=)
{
Complex wn(cos(on**pi/h),sin(on**pi/h));
;j<=len;j+=h)
{
Complex w(,);
;k++)
{
Complex u=y[k];
Complex t=w*y[k+h/];
y[k]=u+t;
y[k+h/]=u-t;
w=w*wn;
}
}
}
)
;i<len;i++)
y[i].x/=len;
}
FFT的一种迭代实现的更多相关文章
- 细说java中Map的两种迭代方式
曾经对java中迭代方式总是迷迷糊糊的,今天总算弄懂了.特意的总结了一下.基本是算是理解透彻了. 1.再说Map之前先说下Iterator: Iterator主要用于遍历(即迭代訪问)Collecti ...
- c++迭代递归实现汉诺塔(5种迭代方法满足你)
#include <iostream> //从A到C using namespace std; int n; void ready() { cout << "请输入汉 ...
- java 测试:iterator foreach for 三种迭代方式哪种更快?
代码: public class main { public static void main(String[] p_args){ ArrayList<String> _l_string ...
- Array 的五种迭代方法 -----every() /filter() /forEach() /map() /some()
ES5定义了五个迭代方法,每个方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象(可选的),作用域对象将影响this的值.传入这些方法中的函数会接收三个参数:数组的项的值.该项在数组中 ...
- 分治FFT的三种含义
分治FFT是几个算法的统称.它们之间并无关联. 分治多项式乘法 问题如求\(\prod_{i=1}^na_ix+b\). 若挨个乘复杂度为\(O(n^2\log n)\),可分治做这件事,复杂度为\( ...
- 三种迭代Java ArrayList方法及比较
闲来无事,研究一下Java Collection,首先是ArrayList. 通过三种方式遍历了长度为100000的ArrayList. import java.util.*; public clas ...
- 【java】TreeMap/HashMap的循环迭代中 keySet和entrySet和forEach方式 + map的几种迭代方式
参考链接:https://www.cnblogs.com/crazyacking/p/5573528.html ================================== java紫色代表迭 ...
- js数组的五种迭代遍历方式 every filter forEach map some
ECMAScript 5 为数组定义了 5 个迭代方法. 每个方法都接收两个参数 数组项的值和索引 every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true,则返回 tru ...
- javascript中五种迭代方法实例
温习一下js中的迭代方法. <script type="text/javascript"> var arr = [1, 2, 3, 4, 5, 4, 3, 2, 1]; ...
随机推荐
- SVG辅助标签
前面的话 本文将详细介绍SVG辅助标签 超链接 在SVG中,可以使用超链接<a>.超链接可以添加到任意的图形上,类比于热区<area> SVG中的超链接有如下3个常用属性 xl ...
- Nginx 减少磁盘读写次数
L:133
- jdk6使用WebSocket
pom.xml <dependency> <groupId>org.java-websocket</groupId> <artifactId>Java- ...
- java Builder模式创建不可变类
package com.geostar.gfstack.operationcenter.logger.manager.common; /** * Created by Nihaorz on 2017/ ...
- mysql中存储字段类型的查询效率
检索性能从快到慢的是(此处是听人说的): 第一:tinyint,smallint,mediumint,int,bigint第二:char,varchar第三:NULL 解释(转载): 整数类型1.TI ...
- wstngfw openVpn站点到站点连接示例(共享密钥)
wstngfw openVpn站点到站点连接示例(共享密钥) 在本例中,将假设以下设置: 站点 A 站点 B 名称 Beijing Office(北京办公室) 名称 Shenzheng Office( ...
- [国家集训队]排队 [cdq分治]
题面 洛谷 和动态逆序对那道题没有什么区别 把一个交换换成两个删除和两个插入 #include <cstdio> #include <cstdlib> #include < ...
- 设置Linux防火墙
设置 Linux 服务器防火墙脚本,Web_iptables.sh 通过内网可访问服务器所有开放端口 给跳板机开放sshd端口连接服务器 信任ip 所有端口均开放 开放部分端口供外部访问 #!/bin ...
- 自学华为IoT物联网_04 车联网常见问题及解决方案
点击返回自学华为IoT物流网 自学华为IoT物联网_04 车联网常见问题及解决方案 1.1 可以预见的车联网未来 车辆对车辆.车辆对道路.车辆对网络通信 车辆对外发送车辆状态信息 周边环境信息发送给车 ...
- python 去重
List: listA = ['python','python','言','是','一','门','动','态','语','言'] print sorted(set(listA), key = lis ...