2019 南昌网络赛D FFT多个多项式相乘

人类能看懂的衍射光学(含基尔霍夫衍射,瑞利--索末菲衍射,夫琅禾费衍射,角谱衍射,菲涅尔衍射积分,菲涅尔衍射的S-FFT算法,T-FFT算法,D-FFT算法) 考虑一些有基础的小伙伴的需求,开头先给结论,感兴趣的可以慢慢看后面的推导过程。 结论: 基尔霍夫,瑞利–索末菲公式:U(x,y,d)=1jλ∫−∞∞∫−∞∞U(x0,y0,0)exp(jkr)rK(θ)dx0dy0U(x,y,d) = \frac{1}{j\lambda} \int_{-\infty}^{\infty}\int_{-\infty}^{\infty} U(x_0,y_0,0) \frac{exp(jkr)}{r} K(\theta)dx_0dy_0U(x,y,d)=jλ1​∫−∞∞​∫−. 阅读详情

2019 Asia Nanchang D. Interesting Series

链接:https://nanti.jisuanke.com/t/41351

题意:首先题目给了若干定义  

定义:Fn=(a^n-1)/(a-1) 

定义:s,S为集合

定义:value(s)=F[sum(s)] 

定义:sum(s)=s的元素加法和

定义:Ans(k)=  sum_{s是S的子集}value(s)[|s|=k]

输入:n a Q,接下来是集合S的n个元素,接下来是Q次询问 每次询问输入Ki

输出:K行 Ans(Ki)%100003   n,q<=1e5

思路:先推样例S={3,1,1},我们把N=3,K=1,2,3都手推一次  

对于N=3 : 

K=3:S全选C(3,3)    Ans(3,3)=a^(s1+s2+s3)    ( Ans的第二维表示N)

K=2:S里面3个选2   Ans(2,3)=a^(s1s2)+a^(s2s3)+a^(s1s3)

K=1:S里面3个选1   Ans(1,3)=a^s1+a^s2+a^s3

好像看不出什么

对于N=2:

K=2   Ans(2,2)=a^(s1+s2)=a^s1*a^s2

K=1   Ans(1,2)=a^s1+a^s2

考虑萌新s3带来的影响

Ans(3,3)=Ans(2,2)*a^s3

Ans(2,3)=Ans(1,2)*a^s3+Ans(2,2)

Ans(1,3)=Ans(1,2)+a^s3

感觉是个递推,但n^2 DP显然会T

 

换一种思路:既然是集合选取元素,那么对于K=0,1,2,3 每个元素选/不选都要考虑在内

假设F(x)为选取的情况,x的指数为选了多少个

对于N=3, F3(x)=1+A(1,3)*x + A(2,3)x^2 + A(3,3)*x^3

对于N=2  F2(x)=1+A(1,2)*x + A(2,2)x^2

F3(x)=1+[A(1,2)+a^s3]x +  [A(1,2)*a^s3+A(2,2) ]x^2  + [A(2,2)*a^s3]x^3

考虑s3选/不选的影响    F3(x)=F2(x)*([a^s3]x+1)

猜想Fn(x)=([a^si]*x+1)的积  FFT多个多项式相乘即可


注意:不能用双模数NTT 因为(a^si)先取了100003模 导致 分别用两个大模数算卷积不对

然后我就不知道怎么处理了,只好写FFT

另外:官方题解的F(x)是把指数的意义反过来了,最终算出来是一样的

我们上面算的是F(n)=a^n的贡献,后面-1的贡献显然是C(n,k),分母最后*逆元即可

1081ms

#include<bits/stdc++.h>
#define rep(i,n) for(int (i)=0;(i)<(int)(n);++(i))
#define reu(i,l,u) for(int i=(l);(i)<(int)(u);++(i))
#define all(o) (o).begin(), (o).end()

using namespace std;
typedef long long ll;
typedef double Num;    //long double TLE
typedef complex<Num> Cp;
const Num PI = 3.141592653589793238462643383279L;
const int MOD = 100003;

namespace FFT {
    void Fuck(int n, Num theta, Cp a[]) {
        for(int m = n; m >= 2; m >>= 1) {
            int mh = m >> 1;
            Cp thetaI = Cp(0, theta);
            rep(i, mh) {
                Cp w = exp((Num)i*thetaI);
                for(int j = i; j < n; j += m) {
                    int k = j + mh;
                    Cp x = a[j] - a[k];
                    a[j] += a[k];
                    a[k] = w * x;
                }
            }
            theta *= 2;
        }
        int i = 0;
        reu(j, 1, n-1) {
            for(int k = n >> 1; k > (i ^= k); k >>= 1) ;
            if(j < i) swap(a[i], a[j]);
        }
    }
    void Dft(int n, Cp a[]) { Fuck(n, 2 * PI / n, a); }  //不改
    void Idft(int n, Cp a[]) { Fuck(n, -2 * PI / n, a); }//不改

    void Mul(vector<Cp> &v, vector<Cp> &w) {
        int n = 1, vwn = v.size() + w.size() - 1;
        while(n < vwn) n <<= 1;
        v.resize(n), w.resize(n);
        Dft(n, &v[0]);Dft(n, &w[0]);
        rep(i, n) v[i] *= w[i];
        Idft(n, &v[0]);
        rep(i, n) v[i] /= n;
    }
}
namespace DLC{
    vector<vector<int> > All;//多项式
    vector<int> Dfs(int l, int r) {//分治
        using namespace FFT;
        if(r - l == 1) {  //构造多项式
            return All[l];
        }
        int mid = (l + r) / 2;//合并
        vector<int> L = Dfs(l, mid), R = Dfs(mid, r);
        vector<Cp> Lc(all(L)), Rc(all(R));
        Mul(Lc, Rc);
        int n = L.size() + R.size() - 1;
        vector<int> res(n);
        rep(i, n) res[i] = (long long)(Lc[i].real() + .5) % MOD;
        return res;
    }
}

//非FFT
ll qmod(ll a,ll b){ll res=1;while(b){if(b&1)res=res*a%MOD;a=a*a%MOD;b=b>>1;}return res;}

int fac[100005], inv[100005];
void Init(void) {//预处理阶乘 
    fac[0] = 1; int lim = 100001;
    for(int i = 1; i <= lim; i++) fac[i] = 1ll*fac[i - 1]* i%MOD;
    inv[lim] = qmod(fac[lim], MOD - 2);
    for(int i = lim - 1; i >= 0; i--) inv[i] = 1ll*inv[i + 1]*(i + 1)%MOD;//乘 
}
int C(int x, int y) {return y>x?0:(1ll*fac[x]*inv[y]%MOD*inv[x - y]%MOD);}


int main() {
    Init();
    using namespace DLC;
    int N,aa,Q;scanf("%d%d%d", &N,&aa,&Q);
    
    ll inva=qmod(aa-1,MOD-2);

    rep(i, N) {//([a^si]x+1)
        vector<int> A;int t;scanf("%d", &t);
        A.push_back(1);A.push_back(qmod(aa,t));All.push_back(A);
    }

    vector<int> ans = Dfs(0, N);
    rep(ii, Q) {
        int K;
        scanf("%d", &K);
        printf("%d\n", (ans[K]-C(N,K)+MOD)%MOD*inva%MOD);
    }
    return 0;
}

 

 

 

多项式相乘(conv.cpp) 多项式相乘:conv.cpp 【问题描述】 编程实现若干个多项式相乘。多项式的输入输出格式为:系数在前,指数在后,各项按指数递增排列,每个多项式输入时以两个0结束。系数为0的项不输出。例如:1+4X3-9X5 n 输入格式可以为:1 0 0 1 0 2 4 3 0 4 -9 5 0 0或者 1 0 4 3 -9 5 0 0, n 输出只能是:1 0 4 3 -9 5。 【输入】 阅读详情

相关推荐

多项式乘法入门

多项式卷积入门By SemiWaker 关于FFT、DFT、CZT、NTT

SemiWaker的博客 6582

多项式乘法(FFT)

多项式乘法(FFT) 前言 作为一名OI选手,至今未写过fft相关的博客,真是一大遗憾,这也导致我并没有真正推过fft的所有式子 这一篇fft的博客我将详细介绍多项式乘法,易于理解,当然,一些公式会有些枯燥,如果是初学者请耐心看完哦 介绍 多项式乘法,顾名思义,首先是讲到多项式,那么什么是多项式呢? 多项式 首先是多项式的定义,想必大家都知道(你上过初中吧),而在这里,我们所说的多项式都是单个未知...

zhouyuheng2003的博客 2万+

【数字信号处理】两连续信号在时域的叠加、卷积、相乘、尺度变换后的信号(在频域的)最低抽样频率

版权声明:本文为博主原创文章,未经博主允许不得转载。   https://mp.youkuaiyun.com/postedit/83055409 假设:频率较高的信号所对应的频率fm1(比如3KHz),频率较低的信号所对应的频率fm2(比如2KHz),最低抽样频率fs 叠加:频率较高的信号所对应频率fm1的2倍,即fs=2fm1 卷积:频率较低的信号所对应频率fm2的2倍,即fs=2fm2 相乘:两个...

baidu_37973494的博客 5万+

2019 南昌网络赛 D. Interesting Series(生成函数 + 分治 + FFT)

代码: #include<iostream> using namespace std; #include<stdio.h> #include<string.h> #include<algorithm> #define double long double typedef long long ll; const double pi = acos(...

qq_41997978的博客 354

菲涅尔衍射积分的D FFT算法。分别改变抽样数、衍射距离,观察计算结果,同时与S FFT算法和T FFT的结果比较。

菲涅尔衍射积分的D FFT算法。分别改变抽样数、衍射距离,观察计算结果,同时与S FFT算法和T FFT的结果比较。MATLAB代码

fibplus-8.0.0.zip

FIBPlus 是一套面向 Delphi / C++Builder 的 Firebird、InterBase 数据库访问组件,特点是直接走原生客户端 API,不经 BDE/ODBC,速度快且可控性强。8.0.0 版本主要适配 Delphi 2009 及以后的版本(Delphi 6–2007 需用 7.9.x),核心组件包括 TpFIBDatabase、TpFIBTransaction、TpFIBDataSet 等,支持精细事务管理、本地缓存、BLOB 处理和备份恢复等数据库服务。该库原为 Devrace 的商业组件,现由社区在 GitHub 的 madorin/fibplus 项目开源维护,建议从官方仓库获取源码而非第三方网盘压缩包。安装时解压后用对应版本的工程组(10.4+ 统一为 `FIB.groupproj`)Build 全部包,再 Install `dclFIB` 并在 Library 路径加入 Source 目录即可。新项目中若需官方技术支持,也可考虑 FireDAC、IBDAC 等更现代的替代方案。

[笔记]ACM笔记 - 利用FFT求卷积(求多项式乘法)

卷积 给定向量:a=(a0,a1,...,an−1),b=(b0,b1,...,bn−1) 向量和:a+b=(a0+b0,a1+b1,...,an−1+bn−1) 数量积(内积、点积):a⋅b=a0b0+a1b1+...+an−1bn−1 卷积:a⊗b=(c0,c1,...,c2n−2),其中ck=∑i+j=k(aibj) 例如:cn−1=a0bn−1+a1bn−2+...

weixin_30932215的博客 772

VS配置RTKLIB(卫星定位开源代码)环境

@RTKlib代码调试教程-Visual Studio 2019 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ##RTKLIB-rtklib_2.4.3 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @RTKlib代码调试教程-Visual Studio 2019 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技

qq_42209977的博客 4486

2019icpc南昌网络赛D(生成函数+分治FFT)

题目链接:https://nanti.jisuanke.com/t/41351 思路:生成函数这部分不多说什么,会的人这个裸的可以不用说什么,不会的自己去学一下好了,至于分治FFT,本质上不能算是一个板子吧,只是用到了分治的思想,像这题只是套了一个普通的分治,有的题套cdq什么的也没问题,但因为没写过这类题,还是先留一份代码放着(这题求fft的单位根double精读不够,要用long doubl...

llmxby 522

(南京观海微电子)——GH700X调试指南--SPI 接口+LVDS-测试盒使用方法

1表示OTP完成后,读取烧录值是否一致来判断是否烧录成功,2表示同时检测VCOM是否一致以及烧录次数是否增加,3表示不做任何检测,由用于自行在程序中判断。[格式]:SetFindVcomEn (<开启或关闭>),ON表示开启VCOM搜寻,默认是开启的,只要使能OTP烧录,按OTP按键则进行VCOM查询;[功能]:OTP完成检测类别,用于设置OTP完成后检测OTP次数还是OTP值来判断OTP是否成功。[功能]:用于设置VCOM查询使能,比如需要烧全代码而不需要对VCOM查询时,可以禁止VCOM查询。

m0_75095200的博客 1665

从0开始部署基础的AlwaysOn

在这个快餐文化盛行的时代,应该没多少人真的会沉下心来看理论和具体步骤,加上我自己也需要一篇可以扩展的快速搭建环境的指引,所以特别写了这篇文章。 我们在这里要做的事情有以下几个:安装环境。包括虚拟机和网络配置等。安装Windows域、配置必要的账号密码及功能。搭建域环境并进行配置。安装配置Windows Server Failover Cluster(WSFC)。安装SQL Server。配置Alw

MVP黄钊吉(發糞塗牆) 7567

多项式乘法与FFT——学习笔记

前言 这篇博客很长,因为考虑到读者很多都是对FFT的了解除了名字再无其它的大白,所以详细地解释了许多,只要你耐心地把它看完,你一定会对FFT有更深刻的理解。 准备工作 首先我们要从泰勒公式说起。 泰勒公式是指若一个函数在x=x0x=x0x=x_0处有n阶导数,我们可以用含这n阶导数和(x−x0)(x−x0)(x-x_0)的多项式来模拟函数在(x−Δx,x+Δx)(其中Δx无限接近于0)...

CleverLarry的博客 1812

android6 usb默认文件管理,不弹RSA配对提示框

本文修改针对 高通 Android6.0.1 出user版本时 https://www.cnblogs.com/Jokeyyu/p/7424262.html http://blog.youkuaiyun.com/sinc00/article/details/44957943 diff --git a/frameworks/base/packages/SystemUI/src/com/android...

木叶风的博客 692

【算法】数据结构与算法分析学习笔记——第三章习题选做快速傅里叶变换与多项式乘法

3.7编写一个函数将两个多项式相乘,用链表实现。必须保证输出的多项式按幂排列并且最多有一项为任意幂。 c.编写一个以O(MNlog(MN))时间执行乘法的程序。

jyyyyyy 887

Mac上快速部署DeepSeek模型:Ollama终端操作全指南

本文详细介绍了在Mac上使用Ollama终端快速部署DeepSeek模型的完整指南。从硬件要求、Ollama安装、模型下载运行,到高级配置、可视化界面及常见问题解决,提供了全流程操作步骤与优化技巧,帮助开发者高效搭建本地AI助手,实现稳定、私密的离线使用体验。

weixin_29251567的博客 550

ArcGIS栅格数据像元值与坐标值提取及Excel导出全流程解析

本文详细解析了使用ArcGIS将栅格数据批量提取像元值与坐标值并导出至Excel的全流程。通过“栅格转点”、“添加XY坐标”和“表转Excel”三大核心步骤,无需编程即可自动化处理遥感、环境等领域的空间数据,有效提升数据分析效率。

zeta9的博客 365

两个多项式相加及相乘

#include <stdio.h> #include <malloc.h> typedef struct PolyNode *Polynomial; struct PolyNode{ int coef; int expon; Polynomial link; }; void Attach(int c,int e,Polynomial *pRear) //pRear是指

寒梅煮雪 3195

南昌网络赛E Interesting Series(生成函数&分治&FFT)

南昌网络赛E Interesting Series(生成函数&分治&FFT) 题目大意 定义FiF_iFi​为 F1=1Fn=a∗Fn−1+1 F_1=1\\ F_n=a*F_{n-1}+1 F1​=1Fn​=a∗Fn−1​+1 定义一个集合s的value为value(s)=Fsum(s)value(s)=F_{sum(s)}value(s)=Fsum(s)​ 对于一个集合S,现询...

FLY_WHITE的博客 601

视觉Transformer实战 | 将卷积引入视觉Transformer(CvT)

CvT 是一种融合卷积神经网络与 Vision Transformer 优势的视觉模型,旨在解决 ViT 缺乏平移不变性和局部性等归纳偏置的问题。CvT 采用分层结构逐级降采样,使用卷积词元嵌入代替传统 patch 切分,引入卷积投影替代线性投影。这些设计使得 CvT 能够去除位置编码,在高分辨率输入下表现更优。本节深入解析 CvT 的核心原理,并提供完整的 PyTorch 代码实现,演示如何在实际数据集上训练和评估 CvT 模型。

盼小辉丶的博客 726

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

利用FFT和逆FFT求多项式乘法 的原理:

利用FFT和逆FFT求多项式乘法 的原理: 假设是N次和M次多项式的乘法, 首先明白为什么要用FFT方法,因为一个字,快。N越大,快得越离谱。 然后是过程,三步走: 1.由系数来求点值(求值)   2.代入点值计算总体Y.   3.由点值计算系数(插值) 其实步骤1的点值可以任意取,只要取够了n+m次,就可以表示了,不过,任意取的代价就是步骤3基本没法求(除非你用什么matlab工具

chchlh的专栏 3121

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

使用链表实现两个多项式相加和相乘

设计函数分别求两个一元多项式的乘积与和。 输入格式: 输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 输出格式: 输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。零多项式应输出0 0。 输入样例: 4 3 4 -5 2

qq_15161183的博客 1万+

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

一文搞懂DTFT,DFT,FFT

以下内容来自这里,概念解释的很清楚,搬过来做个备忘。 很多同学学习了数字信号处理之后,被里面的几个名词搞的晕头转向,比如DFT,DTFT,DFS,FFT,FT,FS等,FT和FS属于信号与系统课程的内容,是对连续时间信号的处理,这里就不过多讨论,只解释一下前四者的关系。 首先说明一下,我不是数字信号处理专家,因此这里只站在学生的角度以最浅显易懂的性质来解释问题,而不涉及到任何公式运算。 学过卷积,...

明月几时有,把酒问青天 1万+

基于S-FFT的衍射计算

基于S-FFT的矩形孔衍射计算 根据傍轴近似条件 r=512,c=r; %给出衍射面上的抽样数 a=zeros(r,c); %预设衍射面 a(r/2-r/4:r/2+r/4,c/2-c/4:c/2+c/4)=1; %生成衍射孔 lamda=6328*10^(-10);k=2*pi/lamda...

DIT0701的博客 4397

基于S-FFT的相息图

基于S-FFT的GS迭代相息图** 基于1次傅里叶变换的菲涅尔衍射计算,采用GS迭代算法,实现相位全息图的生成及逆变换

DIT0701的博客 3640

多项式乘法 快速傅里叶变换

好久没写算法了,这才是本呀,还得拾起来. 快速傅立叶变换实现两个多项式相乘,求乘积的系数 例如,求(n^2 + 2*n + 1)(2*n^2 + 1),最高次幂为2 输入: 2 2(两个多项式的最高次幂)            1 2 1(第一个多项式各项系数)            2 0 1(第二个多项式各项系数) 输出:2 4 3 2 1 即:2*n^4 + 4*n

AIGC Studio:分享AIGC前沿知识和好玩应用,公众号同名。 2728
上一篇: [区间dp+记忆化搜索] 洛谷P1220 && 洛谷P1005
下一篇: 洛谷P3317 变元矩阵树定理+求解行列式
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值