一些数学变换

首先是FFT:

FFT是将系数表达的多项式转化为点值表达的多项式的一类变换:

我们希望计算:

\(A(x) = \sum_{j=0}^{n-1}a_{j}x^{j}\)

对于n个单位复数根有:

\(y_{k} = A(\omega _{n}^{k}) = \sum_{j = 0}^{n - 1}a_{j}\omega _{n}^{kj}\)

我们定义

\(A^{[0]}(x)= a_{0} + a_{2}x+a_{4}x^{2}+ \cdot \cdot \cdot +a_{n-2}x^{n/2-1}\)

\(A^{[1]}(x)= a_{1} + a_{3}x+a_{5}x^{2}+ \cdot \cdot \cdot +a_{n-1}x^{n/2-1}\)

即\(A^{[0]}\)包含所有偶数下标的系数,\(A^{[1]}\)包含所有奇数下标的系数

容易得到

\(A(x)=A^{[0]}(x^{2})+xA^{[1]}(x^{2})\)

所以问题就转化为了两个更小规模的问题:

求次数为n / 2的多项式\(A^{[0]}\)和\(A^{[1]}\)在点

\((\omega _{n}^{0})^{2},(\omega _{n}^{1})^{2},\cdot \cdot \cdot ,(\omega _{n}^{n-1})^{2}\)

的取值

以下是代码

struct cpy
{
    double i, j;
}a[N], b[N], c[N];
cpy operator+ (cpy a, cpy b) {return (cpy){a.i + b.i, a.j + b.j};}
cpy operator- (cpy a, cpy b) {return (cpy){a.i - b.i, a.j - b.j};}
cpy operator* (cpy a, cpy b) {return (cpy){a.i * b.i - a.j * b.j, a.i * b.j + a.j * b.i};}
const double pi = acos(-1);
void FFT(cpy a[], int n, int fl = 1)
{
        for (int i = 1, j = (n >> 1); i < n; ++ i)
    {
        if (i < j) swap(a[i], a[j]); int k;
        for (k = (n >> 1); j & k; j ^= k, k >>= 1); j ^= k;
    }
    for (int i = 2; i <= n; i = i << 1)
    {
        cpy w = (cpy){cos(fl * 2 * pi / i), sin(fl * 2 * pi / i)};
        for (int j = 0; j < n; j += i)
        {
            cpy wn = (cpy){1, 0};
            for (int k = j; k < j + i / 2; ++ k)
            {
                cpy u = a[k], v = a[k + i / 2] * wn;
                a[k] = u + v; a[k + i / 2] = u - v;
                wn = wn * w;
            }
        }
    }
    if (fl < 0) for (int i = 0; i < n; ++ i) a[i].i /= n;
}    

FFT

然后是NTT:

时间: 2024-11-03 05:43:11

一些数学变换的相关文章

talib 中文文档(十四):Math Transform Functions 数学变换

Math Transform Functions ACOS - Vector Trigonometric ACos 函数名:ACOS 名称:acos函数是反余弦函数,三角函数 real = ACOS(close) ASIN - Vector Trigonometric ASin 函数名:ASIN 名称:反正弦函数,三角函数 real = ASIN(close) ATAN - Vector Trigonometric ATan 函数名:ASIN 名称:数字的反正切值,三角函数 real = ATA

数学之路-python计算实战(11)-机器视觉-图像增强

在计算机领域中,灰度(Gray scale)数字图像是每个像素只有一个采样颜色的图像.这类图像通常显示为从最暗黑色到最亮的白色的灰度,尽管理论上这个采样可以任何颜色的不同深浅,甚至可以是不同亮度上的不同颜色.灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的颜色深度.用于显示的灰度图像通常用每个采样像素8 bits的非线性尺度来保存,这样可以有256种灰度(8bits就是2的8次方=256).这种精度刚刚能够避免可见的条带失真,并且非常易于编

【网址】数学网址大全

中文数学专业网站:博士家园http://www.math.org.cnhttp://www.bossh.net 数理逻辑.数学基础:http://www.disi.unige.it/aila/eindex.html意大利逻辑及其应用协会的主页,包括意大利数理逻辑领域的相关内容. http://www.plenum.com/title.cgi?2110<代数与逻辑>,<西伯利亚代数与逻辑期刊>的翻译版,荷兰的Kluwer学术出版社提供其在线服务. http://forum.swart

反向传播(Backpropagation)算法的数学原理

准备 本文不是一篇引导读者入门的科普文.读者至少需要对人工神经网络有概念性的理解,并且熟悉偏导数. 这是一个简单的人工神经网络,分为输入层,隐藏层和输出层.输入层以原始数据 x 作为本层向下一层的输出,即 a(1):隐藏层将 a(1) 中的元素进行线性组合作为自己的输入,即 z(2),然后将 z(2) 进行一个数学变换(函数 g(z))作为对下一层的输出,即 a(2).以此类推,得到最后一层的输出,即 a(3) 或 hΘ(x),就是人工神经网络的运算结果. 其中 Θ(1), Θ(2) 分别是第1

数学好书推荐

数学教材推荐 引言     早就有一种想法:把一些非常好的数学书籍尽量全面地推荐给广大数学爱好者和吧友们.这是由于以下 原因:一是在我们高等数学吧不断有吧友发贴询问推荐一些(高等)数学方面比较好的书籍,可能其中有部 分是初学者,因而急需一些有经验的学长推荐些好书,以便不走弯路.二来恰好笔者也有类似经历,初接触 高等数学方面的书籍时,也不知有啥好坏或者稂莠之别,后来在一些这些书的内容中了解到.在网上一些学长的贴子中看到很多“经典”和比较“好”的教材.参考 书.课外书籍等,于是在广泛查阅.拜读之后,

数学系列:数学资源

中文数学专业网站:博士家园 http://www.math.org.cn http://www.bossh.net   数理逻辑.数学基础:http://www.disi.unige.it/aila/eindex.html 意大利逻辑及其应用协会的主页,包括意大利数理逻辑领域的相关内容.   http://www.plenum.com/title.cgi?2110 <代数与逻辑>,<西伯利亚代数与逻辑期刊>的翻译版,荷兰的Kluwer学术出版社提供其在线服务.   http://f

如何用公式编辑器打傅立叶变换符号

高等数学中,包括了很多数学变换,这些变换符号很重要,也很美观,比如傅里叶变换,拉普拉斯变换,那么这些符号该怎么输入呢?其实很简单,借助公式编辑器即可,下面就一起来学习具体技巧. 傅里叶变换符号和拉普拉斯变换符号示例 具体步骤如下: 1.打开MathType软件,输入大写字母P,在括号模板中选择圆括号模板输入相应的变量. MathType6.9Win:http://wm.makeding.com/iclk/?zoneid=17790 MathType6.7mac版:http://wm.makedi

随机模拟(MCMC)

http://cos.name/2013/01/lda-math-mcmc-and-gibbs-sampling/ http://blog.csdn.net/lin360580306/article/details/51240398 随机模拟(或者统计模拟)方法有一个很酷的别名是蒙特卡罗方法(Monte Carlo Simulation).这个方法的发展始于20世纪40年代,和原子弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆.冯.诺依曼.费米.费曼.Nicholas Metropoli

5.无监督学习-DBSCAN聚类算法及应用

DBSCAN方法及应用 1.DBSCAN密度聚类简介 DBSCAN 算法是一种基于密度的聚类算法: 1.聚类的时候不需要预先指定簇的个数 2.最终的簇的个数不确定DBSCAN算法将数据点分为三类: 1.核心点:在半径Eps内含有超过MinPts数目的点. 2.边界点:在半径Eps内点的数量小于MinPts,但是落在核心点的邻域内的点. 3.噪音点:既不是核心点也不是边界点的点. 如下图所示:图中黄色的点为边界点,因为在半径Eps内,它领域内的点不超过MinPts个,我们这里设置的MinPts为5