当前位置: 首页 > news >正文

做公司网站利润j建设网站

做公司网站利润,j建设网站,网站代运营合同,网站小图标素材下载//写在前面 单就FFT算法来说的话#xff0c;下面只给出个人认为比较重要的推导#xff0c;详细的介绍可参考  FFT算法学习笔记 令v[n]是长度为2N的实序列#xff0c;V[k]表示该实序列的2N点DFT。定义两个长度为N的实序列g[n]和h[n]为 g[n]v[2n],  h[n]v[2n1],  0n…//写在前面 单就FFT算法来说的话下面只给出个人认为比较重要的推导详细的介绍可参考  FFT算法学习笔记 令v[n]是长度为2N的实序列V[k]表示该实序列的2N点DFT。定义两个长度为N的实序列g[n]和h[n]为  g[n]v[2n],  h[n]v[2n1],  0nN  则可进行如下推导 这里所用的FFT算法能够实现O(nlogn)复杂度的离散傅里叶变换和上面最后所得的关系密切相关。   下面进入正题——模意义下的FFT 还是需要先了解一下关于 复序列的DFT的对称性质及一些补充定义  由此可以试想假设说要模的素数p为1e8级别大小那么我们可以把原始的实序列x[n]“拆”一下。 下面假设我们要求的是x[n]卷积y[n]的结果t[n]。 假设q是sqrt(p)级别的一个数我们可以把x[n]/q存到复序列x1[n]的实部x[n]%q存到复序列x1[n]的虚部。这时对x1[n]、y1[n]求DFT再由X1[k]*Y1[k]得到T1[k],整个运算过程中能够产生的最大浮点数为N*q^2级别一般来说还是在可以接受的范围内的。 接下来考虑从卷积结果{T1[k]}中恢复出原始的t[n]的过程。 看一下T1[k]的组成 到这里差不多就可以结束了。发现上面最后一行等号右边有四个“乘积”我们可以把上面四个乘积分别单独拿出来求IDFT就可以恢复出x/y_re/im卷积的结果之后针对不同的乘积考虑需要在模p意义下乘上q^2、q^1或q^0来进行恢复就可以了。 奉上模板 namespace FFT_MO //前面需要有 mod(1e8~1e9级别),upmo(a,b) 的定义 {const int FFT_MAXN118;const db pi3.14159265358979323846264338327950288L;struct cp{db a,b;cp(double a_0,double b_0){aa_,bb_;}cp operator (const cprhs)const{return cp(arhs.a,brhs.b);}cp operator -(const cprhs)const{return cp(a-rhs.a,b-rhs.b);}cp operator *(const cprhs)const{return cp(a*rhs.a-b*rhs.b,a*rhs.bb*rhs.a);}cp operator !()const{return cp(a,-b);}}nw[FFT_MAXN1],f[FFT_MAXN],g[FFT_MAXN],t[FFT_MAXN]; //a-f,b-g,t~c int bitrev[FFT_MAXN]; void fft_init() //初始化 nw[],bitrev[] {int L0;while((1L)!FFT_MAXN) L;for(int i1;iFFT_MAXN;i) bitrev[i]bitrev[i1]1|((i1)(L-1));for(int i0;iFFT_MAXN;i) nw[i]cp((db)cosl(2*pi/FFT_MAXN*i),(db)sinl(2*pi/FFT_MAXN*i));}// n已保证是2的整数次幂 // flag1:DFT | flag-1: IDFTvoid dft(cp *a,int n,int flag1) {int d0;while((1d)*n!FFT_MAXN) d;for(int i0;in;i) if(i(bitrev[i]d))swap(a[i],a[bitrev[i]d]);for(int l2;ln;l1){int delFFT_MAXN/l*flag; // 决定 wn是在复平面是顺时针还是逆时针变化以及变化间距 for(int i0;in;il){cp *leai,*riai(l1);cp *wflag1? nw:nwFFT_MAXN; // 确定wn的起点 for(int k0;k(l1);k){cp ne*ri * *w;*ri*le-ne,*le*lene;le,ri,wdel;}}}if(flag!1) for(int i0;in;i) a[i].a/n,a[i].b/n;}// convo(a,n,b,m,c) a[0..n]*b[0..m] - c[0..nm]void convo(LL *a,int n,LL *b,int m,LL *c){for(int i0;inm;i) c[i]0;int N2;while(Nnm) N1; // N是c扩展后的长度 for(int i0;iN;i) //扩展 a[],b[] 存入f[],g[]注意取模 {LL aain?a[i]:0,bbim? b[i]:0; aa%mod,bb%mod;f[i]cp(db(aa15),db(aa32767));g[i]cp(db(bb15),db(bb32767));}dft(f,N),dft(g,N);for(int i0;iN;i) // 恢复虚部两个“乘积”乘积具体意义见上文{int ji? N-i:0;t[i]((f[i]!f[j])*(!g[j]-g[i])(!f[j]-f[i])*(g[i]!g[j]))*cp(0,0.25);}dft(t,N,-1);for(int i0;inm;i) upmo(c[i],(LL(t[i].a0.5))%mod15);for(int i0;iN;i) // 恢复实部两个“乘积”{int ji? N-i:0;t[i](!f[j]-f[i])*(!g[j]-g[i])*cp(-0.25,0)cp(0,0.25)*(f[i]!f[j])*(g[i]!g[j]);}dft(t,N,-1);for(int i0;inm;i) upmo(c[i],LL(t[i].a0.5)(LL(t[i].b0.5)%mod30));} } 模板 举个栗子~   hdu 6088 Rikka with Rock-paper-scissors (2017 多校第五场 1004 【组合数学 数论 模意义下的FFT】   //本博客主要参考资料数字信号处理——基于计算机的方法第四版  [美] Sanjit K. Mitra 著  余翔宇 译 转载请注明出处 http://www.cnblogs.com/Just--Do--It/p/7892254.html 谢谢阅读  转载于:https://www.cnblogs.com/Just--Do--It/p/7892254.html
http://www.sadfv.cn/news/144796/

相关文章:

  • dede 网站源码页面设计属于作品登记的哪个类别
  • 怎么做付款链接网站建筑工程网免费下载
  • wordpress文件下载插件仙桃seo公司
  • 怎么自己做网站服务器中国计算机软考网
  • 网站开发都是模板网站做彩票犯法吗
  • 怎样在微信里做网站广告网站建设方案
  • 服饰网站建设规划书网站建设海淀
  • 源码网站开发网站建设 风险说明书
  • 红河州建设局网站seo最新
  • 如何创建一个网站wordpress m1主题
  • 做静态网站选用什么服务器wap网站如何做
  • wordpress 彩色标签网店seo名词解释
  • 自己怎么做企业网站企业邮箱格式模板
  • 潍坊做网站软件企业内网怎么搭建
  • 学平面设计的网站家装设计方案
  • 珠海新盈科技 网站建设重庆做网站泉州公司
  • 互联网网站模板互联网十大上市公司
  • 网站建设的需要是什么网站建设数据安全分析
  • 石佛营网站建设长春市建设工程信息网站
  • 免费网站建设链接很长 知呼用fw做明星的网站
  • 域名网站搭建万户做的网站安全吗
  • 做网站美工工资多少网站常用的蓝色
  • 美工网站做兼职福建省头条新闻
  • 叫人建设网站要注意什么问题淘宝数据网站开发
  • 开一家网络公司做网站前景如何商标注册要求
  • 做网站自己上传电影要多大服务器百度怎样建立一个网站
  • 上海网站建设排名公司北京制作网站多少钱
  • 网站导航背景 蓝色wordpress+屏蔽ip插件
  • 企业电子商务网站建设规划方案大气集团网站
  • 有哪些做封面的网站网站开发对比特点