草庐IT

强化学习-学习笔记6 | 蒙特卡洛算法

MonteCarloAlgorithms.蒙特卡洛算法是一大类随机算法,又称为随机抽样或统计试验方法,通过随机样本估计真实值。下面用几个实例来理解蒙特卡洛算法。6.蒙特卡洛算法6.1计算\(\pi\)a.原理如果我们不知道\(\pi\)的值,我们能不能用随机数来近似\(\pi\)呢?假设我们用一个随机数生成器,每次生成两个范围在\([-1,+1]\)的随机数,一个作为x,另一个作为y,即生成了一个二维随机点:假如生成1亿个随机样本,会有多少落在半径=1的圆内?这个概率就是圆的面积除以正方形的面积。即:\(P=\frac{\pi{r^2}}{2^2}=\frac{\pi}{4}\)假设从正方形区

Math学习笔记

最近几天全在做OI数论题,写个blog记一下套路。例如要求\(\operatornameg(n)=\sum_{d|n}d\cdot\varphi(\frac{n}{d})\)尽管你会一个叫做\(\text{LCMSUM}\)(可跳转)的题目,这道题最后可以转化为:\(\operatornameg(n)=\sum_{d|n}d\cdot\varphi(d)\)题解:oi-wiki例题解析but,两个只是长得像,结论完全不一样之后在网上的\(\LaTeX\)在线编辑器写了推式子的过程然后被前面的前面的右边的机位坐着的\(\text{j}\color{Red}{\text{immyywang}}\)

[IOI2000]邮局 题解

简要题意线段上有\(V\)个村庄,现在要建\(P\)个邮局,使每个村庄到最近的邮局的距离之和最小。50分做法设\(dp[i][j]\)表示第一个村庄到第\(i\)个村庄,建了\(j\)个邮局的最小距离,不难得出状态转移方程:\(dp[i][j]=min(dp[k][j-1]+w[k+1][i])\),其中\(w[i][j]\)表示在第\(i\)和\(j\)个村庄之间建一个邮局的最短总距离。根据初中知识不难求得,邮局建在第\(i\)到\(j\)个村庄的中位数的位置上(奇数个村庄)或第\(i\)到\(j\)个村庄的两个中位数之间(偶数个村庄),则总距离最短,因此我们可以递推求出\(w[i][j]\

多项式 I:拉格朗日插值与快速傅里叶变换

1.复数和单位根前置知识:弧度制,三角函数。1.1复数的引入跳出实数域\(\mathbbR\),我们定义\(i^2=-1\),即\(i=\sqrt{-1}\),并在此基础上定义复数\(a+bi\),其中将\(b\neq0\)的称为虚数。复数域记为\(\mathbbC\)。像这种从\(a\)变成\(a+bx\)的扩域操作并不少见,例如初中学习“平方根”时,经常用\(a+b\sqrtx(x>0)\)表示一个数。这类数的加减乘都是容易的,除法即考虑平方差公式\((c+d\sqrtx)(c-d\sqrtx)=c^2-d^2x\),因此\(\frac{a+b\sqrtx}{c+d\sqrtx}=\fra

算法的复杂度分析

简介复杂度分析法是对已知的代码进行效率分析的方法,与之相对的是使用实际数据运行代码的事后统计法。复杂度分析法和事后统计法各有优劣,与复杂度分析法进行比较,事后统计法会有以下局限性:测试结果非常依赖测试环境。硬件的不同会对测试结果有比较大的影响,比如不同处理器的执行时间会不一样测试结果受数据的影响很大。对同一个排序算法,待排序数据的有序度会影响算法的执行时间;对于小规模的数据排序,插入排序的效率会比快速排序的效率更高相比事后统计法,复杂度分析法更能表示一个算法在各个维度的综合性能。复杂度复杂度分为时间复杂度和空间复杂度,但是它们并不能准确地表示算法的执行时间和存储空间。时间复杂度表示的是执行时间

Math学习笔记

最近几天全在做OI数论题,写个blog记一下套路。例如要求\(\operatornameg(n)=\sum_{d|n}d\cdot\varphi(\frac{n}{d})\)尽管你会一个叫做\(\text{LCMSUM}\)(可跳转)的题目,这道题最后可以转化为:\(\operatornameg(n)=\sum_{d|n}d\cdot\varphi(d)\)题解:oi-wiki例题解析but,两个只是长得像,结论完全不一样之后在网上的\(\LaTeX\)在线编辑器写了推式子的过程然后被前面的前面的右边的机位坐着的\(\text{j}\color{Red}{\text{immyywang}}\)

[IOI2000]邮局 题解

简要题意线段上有\(V\)个村庄,现在要建\(P\)个邮局,使每个村庄到最近的邮局的距离之和最小。50分做法设\(dp[i][j]\)表示第一个村庄到第\(i\)个村庄,建了\(j\)个邮局的最小距离,不难得出状态转移方程:\(dp[i][j]=min(dp[k][j-1]+w[k+1][i])\),其中\(w[i][j]\)表示在第\(i\)和\(j\)个村庄之间建一个邮局的最短总距离。根据初中知识不难求得,邮局建在第\(i\)到\(j\)个村庄的中位数的位置上(奇数个村庄)或第\(i\)到\(j\)个村庄的两个中位数之间(偶数个村庄),则总距离最短,因此我们可以递推求出\(w[i][j]\

多项式 I:拉格朗日插值与快速傅里叶变换

1.复数和单位根前置知识:弧度制,三角函数。1.1复数的引入跳出实数域\(\mathbbR\),我们定义\(i^2=-1\),即\(i=\sqrt{-1}\),并在此基础上定义复数\(a+bi\),其中将\(b\neq0\)的称为虚数。复数域记为\(\mathbbC\)。像这种从\(a\)变成\(a+bx\)的扩域操作并不少见,例如初中学习“平方根”时,经常用\(a+b\sqrtx(x>0)\)表示一个数。这类数的加减乘都是容易的,除法即考虑平方差公式\((c+d\sqrtx)(c-d\sqrtx)=c^2-d^2x\),因此\(\frac{a+b\sqrtx}{c+d\sqrtx}=\fra

算法的复杂度分析

简介复杂度分析法是对已知的代码进行效率分析的方法,与之相对的是使用实际数据运行代码的事后统计法。复杂度分析法和事后统计法各有优劣,与复杂度分析法进行比较,事后统计法会有以下局限性:测试结果非常依赖测试环境。硬件的不同会对测试结果有比较大的影响,比如不同处理器的执行时间会不一样测试结果受数据的影响很大。对同一个排序算法,待排序数据的有序度会影响算法的执行时间;对于小规模的数据排序,插入排序的效率会比快速排序的效率更高相比事后统计法,复杂度分析法更能表示一个算法在各个维度的综合性能。复杂度复杂度分为时间复杂度和空间复杂度,但是它们并不能准确地表示算法的执行时间和存储空间。时间复杂度表示的是执行时间

循环码、卷积码及其python实现

摘要:本文介绍了循环码和卷积码两种编码方式,并且,作者给出了两种编码方式的编码译码的python实现关键字:循环码,系统编码,卷积码,python,Viterbi算法循环码的编码译码设\(C\)是一个\(q\)元\([n,n-r]\)循环码,其生成多项式为\(g(x),\text{deg}(g(x))=r\)。显然,\(C\)有\(n-r\)个信息位,\(r\)个校验位。我们用\(C\)对信息源\(V(n-r,q)\)中的向量进行表示。对任意信息源向量\(a_0a_1\cdotsa_{n-r-1}\inV(n-r,q)\),循环码有两种编码思路:非系统的编码方法构造信息多项式\[a(x)=a_