博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FFT快速傅立叶变换
阅读量:6276 次
发布时间:2019-06-22

本文共 607 字,大约阅读时间需要 2 分钟。

//最近突然发现博客园支持\(\rm\LaTeX\),非常高兴啊!

话说离省选只有不到五天了还在学新东西确实有点逗……

切到正题,FFT还是非常神奇的一个东西,能够反直觉地把两个多项式相乘的时间复杂度降到\(O(n \log n)\)。

首先,多项式的表示方法有两种:

  第一种是系数表示法\(\sum_{i=0}^{n-1}a_i x^i\),就是正常的表达一个多项式的办法。

  第二种比较神奇,是点值表示法,就是用\(n\)个点\((x_i,y_i)\)来表示一个多项式,也就是用两个列向量\(x\)和\(y\)来表示一个多项式。

将两个多项式表示成系数表示法直接相乘需要\(O(n^2)\)的时间,而将两个用点值表示法的多项式相乘却只用\(O(n)\)的时间(将两个多项式的\(y\)向量的每一维分别相乘即可)。

而FFT干的事情就是在\(O(n\log n)\)的时间内将多项式从系数表示法转化成点值表示法,或者是将点值表示法转化为系数表示法。

从直觉上看,列向量\(x\)的每一维的随便乱取显然是不靠谱的,为了保证优越的复杂度,我们引入一个神奇的工具——单位复根。

================未完待续================

P.S. 省选居然能考到这种鬼东西!运气真是太好了!

转载于:https://www.cnblogs.com/zhuohan123/p/3619567.html

你可能感兴趣的文章
android高仿抖音、点餐界面、天气项目、自定义view指示、爬取美女图片等源码...
查看>>
js代码常见技巧总结
查看>>
初识css层叠上下文
查看>>
再看正则表达式
查看>>
JavaScript异步精讲,让你更加明白Js的执行流程!
查看>>
mongoose 的那些基础操作
查看>>
前端每日实战:2# 视频演示如何用纯 CSS 创作一个矩形旋转 loader 特效
查看>>
Learn Forge tutorial - 向导式Forge进阶教程
查看>>
Apache配置文件解读学习笔记
查看>>
Laravel源码阅读(前奏-反射实例化对象)
查看>>
springboot mybatis redis shiro 权限控制(springboot模块化使用,后台代码已经完成)...
查看>>
干货--手把手撸vue移动UI框架: 滑动删除
查看>>
CSS 系列之伪类与伪元素
查看>>
《算法导论》学习分享——摊还分析
查看>>
GO — 提供跨域请求代理服务
查看>>
【javascript 基础篇】prototype & constructor & instanceof
查看>>
AngularJs功能(八)--表单验证
查看>>
【源起Netty 外传】System.getPropert()详解
查看>>
LeetCode 300. Longest Increasing Subsequence
查看>>
Spring Boot快速入门(三):依赖注入
查看>>