学习笔记 | 反演 | 二项式反演 | 莫比乌斯反演 | 狄利克雷卷积 |容斥 | 未完待更 | 在更

莫比乌斯与积性函数 莫比乌斯与积性函数 之前做过不少的数论题,关于莫比乌斯与积性函数的数论题挺多的。。。特地过来总结一下。。当作自己的一个回顾了-_-先安利一下神犇tls的博客和神犇PoPoQQQ的pdf ! 膜拜tls… 跪popoqqq… 还有IOI金牌神犇任之州的集训队论文,都是好文啊!需要先知道线性筛这个东西。。 orz… 线性筛的思想是每个合数都只会被它最小的质因数筛去,通过线性筛,我们可以O(n)得 阅读详情

学习笔记 | 反演 | 二项式反演 | 莫比乌斯反演 | 狄利克雷卷积 |容斥


参考资料。

炫酷反演魔术-vfleaking

莫比乌斯反演-PoPoQQQ

【数论】积性函数、莫比乌斯反演、狄利克雷卷积-nanoape

如何证明莫比乌斯反演

前言

**非常良心的博主的良心之作 **

不过…二项式反演还有莫比乌斯反演好像真的可以用小学容斥怒踩qwq…(果然我还是太菜了…

决定将二项式反演和莫比乌斯反演一起写了

不过窝写的好像挺繁琐的…不像是那种简洁明了只几句话讲懂的…

所以期待较少篇幅就讲明白的可以看看参考资料哦!

参考资料写的真心不错qwq

让我们一起感受一下组合数学的美趴!

引入
简单的容斥应用-全错排

n n n个人全站错位置的方案数

  • 错排递推式子 f [ i ] = ( i − 1 ) ∗ ( f [ i − 2 ] + f [ i − 1 ] ) f[i]=(i-1)*(f[i-2]+f[i-1]) f[i]=(i−1)∗(f[i−2]+f[i−1]) ( f [ i ] f[i] f[i]为 i i i个人全错排的方案)还挺好推的不阐述了

    那就简单地讲一讲?

    • 一种情况是 1 1 1和 i i i 交换位置 然后剩下的 n − 2 n-2 n−2个重排 这一部分答案为 ( n − 1 ) ∗ f [ n − 2 ] (n-1)*f[n-2] (n−1)∗f[n−2]
    • 剩下的情况 1 1 1到 i i i的位置上去,但 i i i不到 1 1 1的位置上去 相当于 i i i的位置原来是1 这一部分答案为 ( n − 1 ) ∗ f [ n − 1 ] (n-1)*f[n-1] (n−1)∗f[n−1]
  • 容斥!

    大胆猜想小(不)心(用)证明

    方案数为 ∑ i = 0 n ( − 1 ) i ∗ C n i ∗ ( n − i ) ! \sum_{i=0}^{n}(-1)^i*C_n^i*(n-i)! ∑i=0n​(−1)i∗Cni​∗(n−i)!

    容斥图像

    还是证明一下

    • 在计算有 m m m个人站对的方案时 由于我们计算的时候是直接钦定有多少个人站对,剩下的随意站的。

      所以,在计算 0 , 1 , 2... m − 1 0,1,2...m-1 0,1,2...m−1个人站对的方案时,我们会将 m m m个人站对的方案重复计算。

      会被计算这么多次

      公式莫名挂了…所以贴图片了qwq
      在这里插入图片描述

      • 所以,就加上 ( − 1 ) m (-1)^m (−1)m,那么 m m m个人站对的方案数就抵消了

      为什么 ∑ k = 0 m ( − 1 ) k ∗ C m k = ( 1 − 1 ) m \sum_{k=0}^{m}(-1)^k*C_m^k=(1-1)^m k=0∑m​(−1)k∗Cmk​=(1−1)m呢?

      • 这是二项式定理,事实上,这有个特殊情况,即 m = 0 m=0 m=0时,左边的式子为 1 1 1

      换一种写法:

      ∑ k = 0 n ( − 1 ) k ∗ C n k = [ n = 0 ] \sum_{k=0}^n(-1)^k*C_n^k=[n=0] k=0∑n​(−1)k∗Cnk​=[n=0]

      • [ P ] [P] [P]表示 P P P成立时为 1 1 1,否则为 0 0 0
幕后

根据容斥得出来的一点东西…窝们来搞一搞反向推!博主随口乱讲大家不要在意

设 f ( i ) f(i) f(i)表示 i i i个人全站错的方案数, F ( i ) F(i) F(i)表示 i i i个人随便站的方案数

那么很显然有 F ( n ) = ∑ k = 0 n f ( i ) ∗ C n i F(n)=\sum_{k=0}^nf(i)*C_n^i F(n)=k=0∑n​f(i)∗Cni​

诶?如果窝们可以反向求出 f ( i ) f(i) f(i)不就厉害了嘛!

这个过程的流程是这样的:

首先说一句废话

f ( n ) = ∑ m = 0 n [ n = m ] ∗ C n m f ( m ) f(n)=\sum_{m=0}^n[n=m]*C_n^mf(m) f(n)=∑m=0n​[n=m]∗Cnm​f(m)

  • 哦? [ n = m ] [n=m] [n=m]等价于 [ n − m = 0 ] [n-m=0] [n−m=0]
  • 嗯?窝们上面不是有这个东西嘛? ∑ k = 0 n ( − 1 ) k ∗ C n k = [ n = 0 ] \sum_{k=0}^n (-1)^k*C_n^k=[n=0] ∑k=0n​(−1)k∗Cnk​=[n=0], n n n用 n − m n-m n−m代掉放到 [ n = m ] [n=m] [n=m]那里

⇒ \Rightarrow ⇒ f ( n ) = ∑ m = 0 n ∑ k = 0 n − m ( − 1 ) k ∗ C n − m k ∗ C n m f ( m ) f(n)=\sum_{m=0}^n \sum_{k=0}^{n-m} (-1)^k*C_{n-m}^k*C_n^mf(m) f(n)=∑m=0n​∑k=0n−m​(−1)k∗Cn−mk​∗Cnm​f(m)

  • 显然 C n − m k ∗ C n m = C n k ∗ C n − k m C_{n-m}^k*C_n^m=C_n^k*C_{n-k}^m Cn−mk​∗Cnm​=Cnk​∗Cn−km​(相当于在 n n n个数里选两个集合,一个包含 k k k个元素,另一个包含 m m m个元素的方案数)

⇒ \Rightarrow ⇒ f ( n ) = ∑ m = 0 n ∑ k = 0 n − m ( − 1 ) k ∗ C n − k m ∗ C n k f ( m ) f(n)=\sum_{m=0}^n \sum_{k=0}^{n-m} (-1)^k*C_{n-k}^m*C_n^kf(m) f(n)=∑m=0n​∑k=0n−m​(−1)k∗Cn−km​∗Cnk​f(m)

  • 交换两个 ∑ \sum ∑

⇒ \Rightarrow ⇒ f ( n ) = ∑ k = 0 n ( − 1 ) k ∗ C n k ∑ m = 0 n − k C n − k m ∗ f ( m ) f(n)=\sum_{k=0}^n(-1)^k*C_n^k\sum_{m=0}^{n-k}C_{n-k}^m*f(m) f(n)=∑k=0n​(−1)k∗Cnk​∑m=0n−k​Cn−km​∗f(m)

  • Emmmmm? ∑ m = 0 n − k C n − k m ∗ f ( m ) \sum_{m=0}^{n-k}C_{n-k}^m*f(m) ∑m=0n−k​Cn−km​∗f(m)就是 F ( n − k ) F(n-k) F(n−k)

⇒ \Rightarrow ⇒ f ( n ) = ∑ k = 0 n ( − 1 ) k ∗ C n k ∗ F ( n − k ) f(n)=\sum_{k=0}^n(-1)^k*C_n^k*F(n-k) f(n)=∑k=0n​(−1)k∗Cnk​∗F(n−k)

  • k k k的地方用 n − k n-k n−k代 让下标更好看一点

⇒ \Rightarrow ⇒ f ( n ) = ∑ k = 0 n ( − 1 ) n − k ∗ C n n − k ∗ F ( k ) = ∑ k = 0 n ( − 1 ) n − k ∗ C n k ∗ F ( k ) f(n)=\sum_{k=0}^n(-1)^{n-k}*C_n^{n-k}*F(k)=\sum_{k=0}^n(-1)^{n-k}*C_n^{k}*F(k) f(n)=∑k=0n​(−1)n−k∗Cnn−k​∗F(k)=∑k=0n​(−1)n−k∗Cnk​∗F(k)

千辛万苦。我们得到了这个东西。

F ( n ) = ∑ k = 0 n C n k ∗ f ( k ) F(n)=\sum_{k=0}^nC_n^k*f(k) F(n)=k=0∑n​Cnk​∗f(k)

f ( n ) = ∑ k = 0 n ( − 1 ) n − k ∗ C n k ∗ F ( k ) f(n)=\sum_{k=0}^n(-1)^{n-k}*C_n^k*F(k) f(n)=k=0∑n​(−1)n−k∗Cnk​∗F(k)


反演的定义

设有两个函数 f , F f,F f,F满足

F ( n ) = ∑ k a n , k f ( k ) F(n)=\sum_ka_{n,k}f(k) F(n)=k∑​an,k​f(k)

已知 F F F求 f f f称作反演

  • 可以利用未知量求已知量。

莫比乌斯反演!
  • 求长度为 n n n的字符串且其循环节也为 n n n的字符串个数QwQ
    • 循环节:最小长度的串重复 n / l e n n/len n/len此恰好为该字符串

窝们设 F ( i ) F(i) F(i)表示长度为 i i i的串的数量, f ( i ) f(i) f(i)表示长度为 i i i且循环节也为 i i i的数量

那么有

F ( i ) = ∑ d ∣ i f ( d ) F(i)=\sum_{d|i}f(d) F(i)=d∣i∑​f(d)

  • 可以得到 注意观察式子

F ( 1 ) = f ( 1 ) F(1)=f(1) F(1)=f(1)

F ( 2 ) = f ( 1 ) + f ( 2 ) F(2)=f(1)+f(2) F(2)=f(1)+f(2)

F ( 3 ) = f ( 1 ) + f ( 3 ) F(3)=f(1)+f(3) F(3)=f(1)+f(3)

F ( 4 ) = f ( 1 ) + f ( 2 ) + f ( 4 ) F(4)=f(1)+f(2)+f(4) F(4)=f(1)+f(2)+f(4)

F ( 5 ) = f ( 1 ) + f ( 5 ) F(5)=f(1)+f(5) F(5)=f(1)+f(5)

F ( 6 ) = f ( 1 ) + f ( 2 ) + f ( 3 ) + f ( 6 ) F(6)=f(1)+f(2)+f(3)+f(6) F(6)=f(1)+f(2)+f(3)+f(6)

↓ \downarrow ↓

f ( 1 ) = F ( 1 ) f(1)=F(1) f(1)=F(1)

f ( 2 ) = F ( 2 ) − F ( 1 ) f(2)=F(2)-F(1) f(2)=F(2)−F(1)

f ( 3 ) = F ( 3 ) − F ( 1 ) f(3)=F(3)-F(1) f(3)=F(3)−F(1)

f ( 4 ) = F ( 4 ) − f ( 2 ) f(4)=F(4)-f(2) f(4)=F(4)−f(2)

f ( 5 ) = F ( 5 ) − F ( 1 ) f(5)=F(5)-F(1) f(5)=F(5)−F(1)

f ( 6 ) = F ( 6 ) − F ( 2 ) − F ( 3 ) + F ( 1 ) f(6)=F(6)-F(2)-F(3)+F(1) f(6)=F(6)−F(2)−F(3)+F(1)

⇒ \Rightarrow ⇒ f ( i ) = ∑ d ∣ i μ ( d ) ∗ F ( i d ) f(i)=\sum_{d|i}\mu(d)*F(\dfrac{i}{d}) f(i)=d∣i∑​μ(d)∗F(di​)

其中:

μ ( d ) = { 1 , d = 1 ; ( − 1 ) k , d = p 1 ∗ . . . ∗ p k 0 , o t h e r w i s e \mu(d)=\begin{cases} 1,d=1;\\ (-1)^{k},d=p_1*...*p_k\\0,otherwise\end{cases} μ(d)=⎩⎪⎨⎪⎧​1,d=1;(−1)k,d=p1​∗...∗pk​0,otherwise​

  • 其中 q 1 . . . q k q_1...q_k q1​...qk​是不相同的质数

接下来来证明一下这个东西QwQ.

如果你能够用容斥原理感性理解上述结论窝觉得可能就行了证明只需要知道方法…公式死记肯定会忘掉…总之感性理解是个好东西QwQ珂我没有

其实本质上也是一个容斥原理可以像上面证明二项式反演一样来证

好像… 更好的阅读体验… 要先把前面的那些东西(乱搞猜出莫比乌斯函数)稍稍忘掉哦~qwq

我们回忆一下一道题。是一道容斥入门题

求 [ l , r ] [l,r] [l,r]区间内和 n n n互指的数有多少个.


“我愿意沉默释放内心焰火”

本文作者:Averyta

博客链接:https://blog.youkuaiyun.com/AngryVegetable

积性函数大全(欧拉函数、莫比乌斯反演、杜教筛……) fsdjgskg 阅读详情

相关推荐

炫酷反演魔术

炫酷反演魔术 VFleaKing ICPC WC 2014 Day 7 小学生的容斥 中学生的容斥 容斥的幕后 另一个角度 一点小性质 魔术

读《炫酷反演魔术》有感——各种反演(待填坑)

阅读原文 以下内容只是为了给自己看 %%%VFleaKing 下面进入正题: 什么是反演 二项式反演 ppt一开始给了一道题目: 这是个很简单的容斥问题: F(n)=∑k=0n(−1)k(nk)(n−k)!F(n)=\sum_{k=0}^{n}(-1)^{k}\tbinom{n}{k}(n-k)!F(n)=k=0∑n​(−1)k(kn​)(n−k)! 原文用了和通俗易懂的说法和图来解释这个容斥...

cdy1206473601的博客 711

基于Autoware制作高精地图(一)

基于Autoware制作高精地图(一) ​开始进入正题,也是最近在忙的一件事,制作高精地图。 高精地图的制作大概分为以下四个流程(不一定完全正确): 1.构建点云地图; 2.点云地图标注; 3.制作OpenDrive地图; 4.地图存储索引。 这篇文章主要讲解如何构建点云地图。 首先我们要有一段自己录制的激光雷达点云数据,这里推荐大家采用Velodyne16线激光雷达,因为这里我们构建的点云底图是三维的,而采用Velodyne而不是速腾聚创(rslidar)等其他品牌的原因是Autoware里面有一个选项是

weixin_44570248的博客 7797

二项式反演,莫比乌斯反演。

1、设出两个函数,f(i),g(i)。 要求其满足条件f(n)=sigm(i=0到i=n)C(n,i)g(i) 然后根据这个条件,可以推导出 g(n)=sigm(i=0到i=n)C(n,i)*(-1)^(n-i)f(i) 意思是得出了一个函数可以求出另外一个函数 例子: HDU1465  设g(i)表示正好有i封信装错信封 那么sigmC(n,i)*g(i) 就为将n个信封装入

yeleng的博客 574

Ubuntu 24.04 部署 EMQX 5.8 开源版MQTT服务器:从零搭建到实战应用

本文详细指导如何在Ubuntu 24.04系统上部署EMQX 5.8开源版MQTT服务器。内容涵盖从环境准备、安装Erlang、下载安装包到启动服务的完整步骤,并提供了验证服务、配置网络防火墙以及通过WebSocket工具进行基础消息收发的实战方法,帮助用户快速搭建稳定、免费的物联网消息中间件。

weixin_29209825的博客 293

介绍七种常见还危险的病毒(带样本)

简介:能够感染用户计算机bai系统中的.exe、.dll和.html文件,将自身加密以后缀加到目标文件中。样本(源文件):https://wwx.lanzoux.com/iJx4njrpz1c / https://wwx.lanzoui.com/iYRNLwd8ldc。英文名称:Virus.Win32.Viking.A(标准) / Worm.Win32.Fujack.A(标准)英文名称:Net-Worm.Win32.Blaster.A(标准)/ Lovesan.A/ Msblast.A。

2301_78858007的博客 8394

莫比乌斯反演 & 二项式反演

感觉莫比乌斯反演的可操作性不大。 一般地: ∑d∣nμ(d)=[n=1]\sum_{d|n}\mu(d)=[n=1]∑d∣n​μ(d)=[n=1] - 公式 1 欧拉反演: ∑d∣nϕ(d)=n\sum_{d|n}\phi(d)=n∑d∣n​ϕ(d)=n - 公式 2 例一:求 ∑i=1ngcd⁡(i,n)\sum_{i=1}^n\gcd(i,n)∑i=1n​gcd(i,n) sol:原式 = ∑j∣nnjϕ(j)\sum_{j|n}\frac{n}{j}\phi(j)∑j∣n​jn​ϕ(j) (代入公式

cqbzlydd的博客 423

DC/DC开关电源EMC仿真红宝书

本红宝书系统性介绍开关电源EMC仿真方法,包括仿真原理、仿真思路、仿真工具以及仿真效率提升与仿测一致性的实战经验。从理论到仿真,从仿真到应用,真正帮你实现一文掌握开关电源EMC仿真!全文约14000字,适读人群:开关电源设计、电磁兼容EMC相关从业者,电磁相关专业研究生及CST仿真爱好者等。

电磁学社 2498

反演定理及其应用

一、莫比乌斯反演 莫比乌斯反演公式: 若 F(n)=∑i|nf(i)F(n)=∑i|nf(i)F(n)=\sum_{i|n}f(i) 则 f(n)=∑i|nμ(i)F(ni)f(n)=∑i|nμ(i)F(ni)f(n)=\sum_{i|n}\mu(i)F(\frac{n}{i}) 为什么呢?请看证明: 由于莫比乌斯函数具有性质∑i|nμ(i)=[n=1]∑i|nμ(i)=[n=1]\...

WAautomaton的博客 8483

Ansys Lumerical | 薄膜铌酸锂电光调制器的仿真与优化

本文详细介绍了使用Ansys Lumerical进行薄膜铌酸锂电光调制器仿真与优化的全流程。从基础原理到电学仿真、光学模拟技巧,再到设计优化实战经验,帮助工程师掌握这一先进光电器件的仿真方法。重点解析了薄膜铌酸锂的Pockels效应和Mach-Zehnder结构设计,并提供了常见问题排查指南和最新发展动态。

vulkan6gpu的博客 1197

使用 Python 获取网络数据

本文介绍了 Python 获取网络数据、使用 requests 库、编写爬虫代码以及使用 IP 代理的方法。Python 的 requests 库非常方便,可以帮助我们快速访问网络资源。编写爬虫程序需要掌握正则表达式、HTTP 协议等知识,同时需要注意爬取速度和频率,以避免对被爬取网站造成负担。最后,使用 IP 代理可以帮助我们隐匿身份,保护我们的网络安全。

互联说 2695

莫比乌斯反演与狄利克雷卷积

积性函数 对于gcd(a,b)=1,都有f(ab)=f(a)∗f(b)。那么f(n)是积性函数对于gcd(a,b)=1, 都有 f(ab)=f(a)*f(b)。那么f(n)是积性函数对于gcd(a,b)=1,都有f(ab)=f(a)∗f(b)。那么f(n)是积性函数 欧拉函数ϕ(n)\phi(n)ϕ(n)是一个积性函数,对于一个素数ppp。有: ϕ(p)=p−1\phi(p)=p-1ϕ(p)=p−...

hanjinbo的博客 514

智能车竞赛走马观碑组:如何高效识别目标板并优化绕行策略(附实战代码)

本文深入探讨了智能车竞赛走马观碑组中,如何构建从图像识别到路径决策的全栈优化方案。针对目标板识别与绕行策略的核心难点,文章详细解析了基于MobileNetV2的高效识别流水线、结合预瞄点与纯追踪算法的平滑路径规划,以及横向与纵向协同控制策略,并提供了实战代码与调试指南,旨在全面提升小车的比赛表现。

o5p6q的博客 884

「莫比乌斯反演&&狄利克雷卷积」学习笔记

积性函数 完全积性函数:\(f(ab)=f(a)f(b)\) 一般积性函数:\(f(ab)=f(a)f(b),a \perp b\) 常见的积性函数有: 莫比乌斯函数 \(\mu(n)\) 1的狄利克雷逆 欧拉函数 \(\varphi(n)\) 表示小于\(n\)的数中与\(n\)互质的个数 \(id\)函数 \(id(n)=n\) 单位元 \(\epsilon(n)=[n=1]\) 狄利克雷卷...

weixin_30262255的博客 217

Python电梯II

输入数据有若干组(最多不超过1000组),每组数据的第一行为四个如题目中所示的整数N,u,d,s,由空格分隔开。第二行为不同楼层需要上下楼的请求, 最多不超过1000个。每个请求的格式为"from-to",其中"from"和"to"为所在楼层和要到达的楼层,保证from!=to。

沐风—云端行者 909

ssm框架搭建

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

莫比乌斯反演的证明(非狄利克雷卷积法)

首先给大家介绍一下莫比乌斯函数吧,其实这个函数挺好理解的,只是一个容斥系数 μ(d)的定义是: 当d=1时,μ(d)=1; 当d=Πki=1pi且pi为互异素数时,μ(d)=(−1)k。(说直白点,就是d分解质因数后,没有幂次大于平方的质因子,此时函数值根据分解的个数决定); 只要当d含有任何质因子的幂次大于等于2,则函数值为0. 莫比乌斯函数的性质 1、对于任意正整数n,∑d|nμ(d)=[n=1]。([n=1]表示只有当n=1成立时,返回值为1;否则,值为0;(这个就是用μ是容斥系数的性质可以证明)(P

weixin_51979465的博客 1231

深度学习工具包 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")

莫比乌斯反演学习笔记

在Imagine大佬的博客帮助下整了一周莫某某反演,总结一下学的一些新东西和我做的水题的一些小套路; 本篇文章没有对反演进行证明,只是记录了一些理解与做题时遇到的感觉挺有用的小技巧 首先是莫比乌斯函数μ\muμ μ(x)={x=1&amp;nbsp;          1x=p11∗p21∗p31...∗pk1   (−1)kOther          0\mu(x)=\begin{cases} x=1...

CIao_015的博客 454

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

莫比乌斯反演专题

算法专题莫比乌斯函数整除分块Example分析代码莫比乌斯函数的性质莫比乌斯反演积性函数后续 莫比乌斯函数 首先把nnn按照唯一分解定理变成∏i=1kpici\large\prod_{i=1}^{k}p_i^{c_i}∏i=1k​pici​​ 那么若∀x∈p\forall x\in p∀x∈p μ(n)={1[n==1]0[n&VeryThinSpace;mod&VeryThinS...

lemondinosaur的博客 744

莫比乌斯反演与容斥原理

莫比乌斯反演与容斥原理说真的 。刚接触莫比乌斯反演的时候我觉得这玩意很神奇。随着认识的加深。我觉得这玩意跟容斥原理真的好像。方便理解。来个栗子。。定义:函数F(a)F(a)有:F(a)=∑a|df(d)F(a)=\sum_{a|d}f(d)定义从所有素数从小到大组成的集合为:P={P1,P2,P3,...P∞}P=\{P_1,P_2,P_3,...P_{∞}\}11是不能被任何素数整出的数字。有容斥

ZLH_HHHH的博客 2883

「总结」狄利克雷卷积,莫比乌斯反演和杜教筛

这一篇\(\texttt{blog}\)应该算这篇的后续,所以可以先看一下这一篇QwQ 0. 一些奇奇怪怪的数论函数 \(\begin{aligned}1. \; & \textbf{1}(x) = 1 \\2. \; & \textbf{id}(x) = x, \textbf{id}^k(x) = x ^ k \\3. \; & \textbf{d}(x) = \sum_...

weixin_30343157的博客 238

莫比乌斯反演

莫比乌斯反演 (PS:在评论区中众多dalao的催促下,我认真的写了三天三夜写完了这篇杜教筛,保证是精品!) 前言 (这大概是我第一次写学习笔记吧OvO) 可能每一个刚开始接触莫比乌斯反演的OIer,起初都会厌恶这个神奇的东西。(我也一样233)每一个人厌恶的原因有许多,可能是这个烦人的式子,也可能仅仅只是因为不理解μμ函数而感到不爽。当然,莫比乌斯反演有一个小小的预备知识:整除分块 那么我...

自以为心若顽石,却终究人非草木。 347

容斥,积性函数,卷积,数论

质数,欧拉函数,莫比乌斯函数等积性函数筛法 积性函数都可以在复杂度内计算出来。 如何线性筛? 首先计算,其次当为质数的时候可得. 接下来筛的时候,如果则. ,我们需要手动推出等他们之间的关系。 //欧拉筛打表o(n) int tot,prime[maxn]; bool isPrime[maxn]; int phi[maxn],mu[maxn]; void init() { m...

qq_38890926的博客 460
上一篇: 论逗逼的自我修养之常犯逗逼错误 | 在更
Averyta
博客等级 码龄7年 1粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值