
数学
文章平均质量分 79
介绍OI中需要使用到组合数学知识。
努力的老周
一个老码农,中年大叔。打过工,做过老板。
现有神兽一枚,努力培养神兽中。
展开
-
大数求余数
问题提供两个数据 a,b,计算 a%b 的余数。你可能会觉得这个问题很简单。我们用 C++ 为例,如果 a 和 b 可以在 long long 表示范围,那么这个问题非常简单。但是如果 a 超过了 C++ 中 long long 都超过的数据,我们要如何求余数?计算过程分析比如求 443 % 3443\ \% \ 3443 % 3,我们先来演算一下。如下图,图像来自网络搜索。下面我们来解释一下完整的计算过程:1、第一个数字(百位)444:4%3=14\%3原创 2021-05-13 21:04:05 · 1804 阅读 · 1 评论 -
C++ 中自定义取模相关操作
算法竞赛中,我们经常需要使用到取模运算。下面总结一些取模操作,以备将来形成自己的算法支持包。typedef long long LL;加法取模目标实现 a+b 对 m 取模。函数原型LL modsum(LL a, LL b, LL m);实现LL modsum(LL a, LL b, LL m) { return ((a%m)+(b%m))%m;}减法取模目标实现 a-b 对 m 取模。函数原型LL modsub(LL a, LL b,原创 2020-11-02 11:19:26 · 578 阅读 · 0 评论 -
高斯消元(Gaussian elimination)
我们将分两个部分来说明高斯消去,第一部分是数学方面,第二个部分是如何用 C++ 来实现。第一部分 数学知识什么是高斯消去高斯消元法(或译:高斯消去法),是线性代数规划中的一个算法,可用来为线性方程组求解。高斯消元的目标是将矩阵变为上三角矩阵,例如,对应的矩阵为就是一个上三角矩阵(upper triangular matrix)。对于一个线性方程组,我们可以写出两个矩阵(系数矩阵 coefficient matrix 和增广矩阵 Augmented Matrix),如下图所示。.原创 2020-11-24 14:45:01 · 39105 阅读 · 2 评论 -
三角形的数量
常看到的一个数学题,在三角形的边上有若干个点,然后问可以有几个三角形。题目三角形的2条边上分别有m和n个点(不包括三角形的顶点),这些点分别同这两条边相对的顶点有连线,这样组成了一个复杂的图形,问这个图形中包含了多少个不同的三角形。题解一个排列组合题目。考虑以A为顶点的三角形数量, 线段[A1,B] 上任取2点,同A可以组成三角形,因此总数量为C(n+2, 2)。与[A1,B] 类似的线段,共有m+1 条。总数为:。考虑以B为顶点的三角形数量, 线...原创 2020-08-19 13:36:11 · 2475 阅读 · 0 评论 -
OI中常见的数学符号
整除/同余理论常见符号1、整除符号。表示 x 整除 y,即 x 是 y 的因数。2、取模符号。表示 x 除以 y得到的余数。3、互质符号。表示 x 和 y 互质。4、最大公约数gcd(x, y)。在无混淆意义的时候,可以写作 (x, y)。5、最小公倍数lcm(x, y)。在无混淆意义的时候,可以写作 [x, y]。数论常见符号1、求和符号。...原创 2020-05-06 15:19:58 · 6778 阅读 · 0 评论 -
牛顿法
概述牛顿迭代法(Newton's method)又称为牛顿-拉夫逊(拉弗森)方法(Newton-Raphson method),它是牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法。多数方程不存在求根公式,因此求精确根非常困难,甚至不可能,从而寻找方程的近似根就显得特别重要。牛顿法的几何意义上图中 y=f(x) 是一个可微函数。设 r 是 f(x)=0 的跟,选...原创 2020-03-10 23:37:28 · 2107 阅读 · 0 评论 -
辗转相除法过程动图展示
如下图:原创 2020-03-08 15:37:36 · 2687 阅读 · 0 评论 -
算法比赛中 PI 的定义
我们在算法比赛中,经常要使用到常数 PI。有时候,使用 3.14 精度不够,我们可以这样定义常数 PI。#include <cmath>const double PI=acos(-1.0);这样定义,可以保证计算的精度。又充分利用到 C++ 得 const 特性。...原创 2020-03-02 21:36:12 · 1564 阅读 · 0 评论 -
正弦定理的使用 I
昨天收到某个初中生的题目,首先感谢同寝室的学霸好基友的提醒。题目描述如图,中,AC>BC,点 D、E 分别在 BC,AC上,且 ,AE=BD,求证 。思路利用正弦定理来求解。学霸可以考虑自己借一下。正弦定理的描述可以参考,https://blog.youkuaiyun.com/justidle/article/details/104508449。解法首先,我们在图上标注如...原创 2020-02-26 10:54:27 · 530 阅读 · 0 评论 -
正弦定理
正弦定理(The Law of Sines)是三角学中的一个基本定理。定理定义在任意 中,角A、B、C所对的边长分别为a、b、c,三角形外接园的半径为 R,直径为 D。则有:。即,一个三角形中,各边和所对角的正弦之比相等,且该比值等于该三角形外接园的直径(半径的2倍)长度。证明做一个边长为a,b,c的三角形,对应角分别是A,B,C。从角C向c边做垂线,得到一个长度为h的垂线和两个...原创 2020-02-26 00:00:15 · 59982 阅读 · 0 评论 -
快速幂取模
所谓的快速幂取模,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。下面使用 为例。我们可以使用余数相关定理,https://blog.youkuaiyun.com/justidle/article/details/104450728,我们知道 。最朴素的方法先类乘计算幂,再计算模。int PowM...原创 2020-02-22 21:55:23 · 412 阅读 · 0 评论 -
快速幂
概率顾名思义,快速幂就是快速算底数的 n 次幂。其时间复杂度为 O(log₂N),与朴素的 O(N) 相比效率有了极大的提高。原理使用求 a 的 b 次方来解释。把 b 转换成二进制数,该二进制数第 i 位的权为 。例如:,11 的二进制为 1011,即 ,因此,可以将 转化为算 。这样原来计算 需要计算 11 次,通过快速幂只需要计算 3 次。从而降低了算法的复杂度。算法思路...原创 2020-02-22 21:40:06 · 237 阅读 · 0 评论 -
数论——余数相关定理
1、加法律:(a+b) mod c = ((a mod c) + (b mod c)) mod c。2、减法律:(a-b) mod c = ((a mod c) - (b mod c)) mod c。3、乘法律:(a*b) mod c = ((a mod c) * (b mod c)) mod c。4、次方律:。5、消去律:若 gcd(c,p) = 1,则 。...原创 2020-02-22 21:19:12 · 2848 阅读 · 0 评论 -
数论——同余
理论背景数学上,两个整数除以同一个整数,若得相同余数,则二整数同余(英文:Modular arithmetic,德文:Kongruenz)。同余理论常被用于数论中。最先引用同余的概念与符号者为德国数学家高斯。同余理论是初等数论的重要组成部分,是研究整数问题的重要工具之一,利用同余来论证某些整除性的问题是很简单的。同余是数学竞赛的重要组成部分。同余定理给定一个正整数 m,如果两个整数 a...原创 2020-02-22 14:06:37 · 4988 阅读 · 2 评论 -
排列与组合
基本定义阶乘阶乘近似公式排列组合基本定理Sperner定理从一个大小为 n 的集合里最多选出。二项式定理原创 2020-01-02 10:52:13 · 7258 阅读 · 0 评论