共有 31 篇文章
高精度(Arbitrary-precision arithmetic)
2019-05-23 - 2024-09-15
在运算过程中如果运算结果很大,普通的数据类型无法储存,就需要用到所谓的高精度算法,即用数组来存储整数,并模拟手算的方式进行四则运算。
KMP 算法
2019-04-30 - 2024-09-15
Knuth-Morris-Pratt 字符串查找算法,简称为 “KMP算法”,常用于在一个文本串S内查找一个模式串P 的出现位置,这个算法由Donald Knuth、Vaughan Pratt、James H. Morris三人于1977年联合发表,故取这3人的姓氏命名此算法。
完全数
2019-04-20 - 2024-09-15

完全数,又称完美数完备数,是一些特殊的自然数:它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身,完全数不可能是楔形数

例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6,恰好等于本身。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28,也恰好等于本身。后面的数是4968128

十进制的5位数到7位数、9位数、11位数、13到18位数等位数都没有完全数,它们不是亏数就是过剩数

Green公式-判断多边形边界曲线顺/逆时针
2019-04-14 - 2024-09-15
判断一个多边形的边界曲线是否是顺时针或者逆时针
动态规划
2019-04-05 - 2024-09-15

背包的状态转换方程 :

    $math_inline$f[i,j] = Max\lbrace f[i-1,j-W_i]+Pi( j >= W_i ),  f[i-1,j] \rbrace$math_inline$

    $math_inline$f[i,j]$math_inline$

表示在前i件物品中选择若干件放在承重为 j 的背包中,可以取得的最大价值。 Pi表示第i件物品的价值。 决策:为了背包中物品总价值最大化,第 i件物品应该放入背包中吗 ?

Dijkstra(迪杰斯特拉)算法 单源最短路径算法
2019-04-03 - 2024-09-15

path 1 2 3 4 5 6 7 8
1 0 3 2 3
2 3 0 5 4
3 2 0 4 6
4 3 0 4 6
5 5 4 0 2 2
6 4 4 2 0 3
7 6 6 2 0 3
8 3 3 0
dis 1 2 3 4 5 6 7 8
估计值 0 3 2 3

path代表地图 例如path[i][j]代表从ij的距离

dis代表从起点到达i的距离,开始时初始化为最大,代表无穷远即未连同

vis代表当前节点[i]是否访问过

并查集
2019-03-24 - 2024-09-15

并查集是一种树型的数据结构,用于处理一些**不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)**定义了两个用于此数据结构的操作:

  • Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。
  • Union:将两个子集合并成同一个集合。
统计字符串中子串数目
2019-03-22 - 2024-09-15
统计一个字符串在另一个字符串中出现的次数,包含重叠和非重叠两种情况
欧拉降幂 && 快速幂
2019-02-18 - 2024-09-15

欧拉φ函数:在数论中,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目。此函数以其首名研究者欧拉命名,它又称为φ函数、欧拉商数等。

φ(1)=1; φ(2)=1; φ(3)=2; φ(4)=2; φ(9)=6