线性规划之单纯形法 在 Codeforces 有人问了我两个优化问题,一个是非线性规划(具体说是凸优化问题)。一般来说非线性规划没有什么具体的算法,但是凸优化,可以转化成凸包,然后转换成线段(如果是二维的)上的最值问题就搞定了。另一个是线性规划(所有线性规划其实也是特殊的凸优化),线性规划有著名的单纯形算法,7 年前就学过,但一直没写过代码。趁这次机会重新学习一下单纯形算法,并给出代码。英文版解答 参考教材:运筹学 2020-11-06 #algorithm
cpp 模板 编写编译器易优化、易读、易拓展、自解释的代码,并且配套文档。 C++ 模板的 代码,文档,比赛源码 都已放在 github 上 博弈,多项式, 图论,字符串, C++ 学习笔记 单独成篇 C++11 是基本,C++14 是福报,C++17 是奢望,C++2x 在梦里,只能用 C++98 那赶紧跑路 我对 C++ 的感情,犹如对祖国一样充满希望。它自然有很多被诟病的地方,但不影响它在不断完善 2020-07-18 #algorithm #cpp
基于快速数论变换的多项式 快速 Fourier 变换(FFT),被称为 20 世纪最伟大的十大算法之一。所以很多软件都有对应的 FFT,例如 Python 的 scipy.fftpack 中就有关于 FFT 的包。所以个人写 FFT 就没有那么必要了。但是 NTT(快速数论变换) 的包一般都没多少,而且会写 NTT 必然就会写 FFT 了。大约在 5 年前,在 miskcoo 博文:从多项式乘法到快速傅里叶变换 学会并且写 2020-06-02 #algorithm #math #cpp #python
$x^2 \equiv a \mod n$ 何时有解 显然,我们只需考虑 \(0 \leq a < n\) 的情形。这个问题应该很早就被人考虑好了,不过无所谓吧(反正只是个博文而已)。以下内容都是独立完成的。并可看作 二次剩余和 Gauss 互反律 这篇博文的延续。最后再给出方程的一个解(如果存在的话)。 2020-05-28 #math #sagemath
动态规划 动态规划是研究一大类问题(特别是最值问题)的一种思路。从大二刚开始 ICPC 竞赛的时候第一次遇到,到大三学运筹学系统的了解,再到后来一直成为解决问题的一种思考方式。可以说动态规划真的是万金油的方法。 计算机领域(或者说博弈论)中的动态规划,就如同数学中的数学归纳法,一样重要。 运用动态规划的能力,就好比武侠小说中的内功,是随着时间慢慢累积的。 进阶可看 zscoder 的博文 2020-05-21 #algorithm
Grossman 常数 考虑由如下递推关系确定的实数数列 \(\lbrace A_n \rbrace\): \[ \begin{aligned} A_{n+2} = \frac{A_n}{1+A_{n+1}} \\ A_0=1,\; A_1=x \end{aligned} \] 可以证明,有且仅有一个 \(x=x_0\) 使得 \(\lbrace A_n \rbrace\) 收敛。这个 \(x_0 = 0.7373383 2020-05-16 #math
网页工具 通用 提问的智慧:google is your friends 别像弱智一样提问:不要做不劳而获的人,想想你的问题能给别人带来帮助吗 万维百科 Wiki 镜像 数学 MathPages 代数几何的 Stack project 欧拉计划 oeis.org: 数列百科全书 sagemath sagemath 在线版 Wolframalpha 在线多功能计算器 Matlab Online Matl 2020-05-06 #tool
$GL_n(\mathbb{Z}_m)$ 的阶数 由线性无关性,我们不难知道 \(|GL_n(\mathbb{Z}_p)| = \prod_{i=0} ^{n-1} (p^n-p^i)\),但是 \(|GL_n(\mathbb{Z}_m)|\) 却是一个相对复杂的问题,它本质上是在考虑有限 Abel 群的自同构群的阶数问题。它又跟递推数列模 \(m\) 的周期密切相关。 2020-04-25 #math