首页 > 其他分享 >数学

数学

时间:2023-11-17 21:11:19浏览次数:32  
标签:lfloor gcd int dfrac 数学 ax cases

???

注意:以下讨论的数若未特殊注明均为自然数。

1.1 欧几里得算法

引理:\(\gcd (a,b)=\gcd(b,a\bmod b)\)。特别地:当 \(b=0\) 时,\(\gcd(a,b)=a\)。

递归求解代码:

int gcd(int a,int b){return !b ? a : gcd(b,a % b);}

对于最小公倍数,有 \(\operatorname{lcm}(a,b)=\dfrac{a\times b}{\gcd(a,b)}\)。

1.2 扩展欧几里得算法

裴蜀定理

设 \(a,b\) 是不全为 \(0\) 的整数,对于任意整数 \(x,y\),有 \(\gcd(a,b)\mid ax+by\),且存在整数 \(x,y\),使得 \(ax+by=\gcd(a,b)\)。

通过裴蜀定理能判断二元一次不定方程的解的存在性。

求解方程 \(ax+by=\gcd(a,b)\)

当 \(b=0\) 时,\(\begin{cases}x=1\\y=0 \end{cases}\) 为一组可行解;

否则由 1.1 引理转求解方程 \(bx'+(a\bmod b)y'=\gcd(b,a\bmod b)=\gcd(a,b)\)。

进一步推导:\(bx'+(a-\lfloor\dfrac{a}{b}\rfloor b)y'=ay'+b(x'-\lfloor\dfrac{a}{b}\rfloor y')\),即通过 \(x',y'\) 能够得到一组原方程的解。

实现代码:

void exgcd(int a,int b,int &x,int &y){
	if(!b)return x = 1,y = 0,void();
	exgcd(b,a % b,y,x),y -= a / b * x;
}

一些等价问题

  1. 二元一次不定方程的整数解:\(ax+by=c\)

    有解的充要条件为:\(\gcd(a,b)\mid c\);

    若方程存在一组解 \(\begin{cases}x=p\\y=q\end{cases}\),则方程的通解为 \(\begin{cases}x=p+k\dfrac{b}{\gcd(a,b)}\\y=q-k\dfrac{a}{\gcd(a,b)}\end{cases}\),其中 \(k\) 为任意整数。

  2. 同余方程:\(ax\equiv c\pmod b\)

    可以化为:\(ax+by=c\),转化为问题 1。

    特殊地,当 \(c=1\) 时,求得的 \(x\) 为 \(a\) 在模 \(b\) 意义下的乘法逆元。

1.3 中国剩余定理

求解同余方程

\[\begin{cases} x\equiv c_1\pmod {b_1}\\ x\equiv c_2\pmod {b_2}\\ \dots\\ x\equiv c_n\pmod {b_n} \end{cases} \]

其中,\(b_{1\sim n}\) 两两互质。

\(x\) 的通解形式为:\(x=\sum\limits_{i=1}^{n}m_im_i^{-1}c_i+kM\)。其中,\(M=\prod\limits_{i=1}^{n}b_i\),\(m_i=\dfrac{M}{b_i}\),\(m_i^{-1}\) 为 \(m_i\) 在模 \(b_i\) 意义下的乘法逆元,\(k\in \mathbb Z\)。

2023.11.17 错误:\(m_i\) 不能对 \(a_i\) 取模。但并不是因求乘法逆元产生的问题

整数除法相关

\(\lceil a\rceil\)\(\lfloor a\rfloor\)

计算

整型计算除法为向零取整。将除数转为正数后再讨论结果的正负进行计算。

int cl(int a,int b){
	if(b < 0)a = -a,b = -b;
	return a >= 0 ? (a + b - 1) / b : a / b;
}
int fl(int a,int b){
	if(b < 0)a = -a,b = -b;
	return a >= 0 ? a / b : (a - b + 1) / b;
}

整除分块

复杂度 \(\mathcal O(\sqrt n)\)。似乎有两倍常数。开数组存储端点时需要注意。

for(int l = 1,r = 0;l <= n;l = r + 1){
    r = n / (n / l);
    //caculate
}

不等式

以下讨论均为整数

\(ax\le b\Rightarrow x\le\lfloor\dfrac{b}{a}\rfloor\)

\(ax\ge b\Rightarrow x\ge \lceil\dfrac{b}{a}\rceil\)

\(ax< b\Rightarrow ax\le b-1\Rightarrow x\le \lfloor\dfrac{b-1}{a}\rfloor\)

\(ax>b\Rightarrow ax\ge b+1\Rightarrow x\ge \lceil\dfrac{b+1}{a}\rceil=\lfloor\dfrac{b}{a}\rfloor+1\)

拓展:给定限制 \(b\),求满足相关条件的 \(a\) 的倍数。根据上述不等式,等价于求出 \(ax\) 的值。

标签:lfloor,gcd,int,dfrac,数学,ax,cases
From: https://www.cnblogs.com/sprads/p/17839697.html

相关文章

  • 数学基础:三角形重心坐标插值公式的证明
    在快速Phong明暗处理(Blinn-Phong明暗处理)时,出现了三角形重心坐标插值公式,但没有给出证明.网上也鲜有证明过程,这里给出证明.问题描述:在三角形ABC中,三顶点A、B、C坐标分别为\((x_1,y_1,z_1)、(x_2,y_2,z_2)、(x_3,y_3,z_3)\).则三角形内任一点P(x,y,z)可表示为:\[\tag{1}P=\alph......
  • 初中数学核心知识点整理汇总大全
    七年级数学(上)知识点人教版七年级数学上册主要包含了有理数、整式的加减、一元一次方程、图形的认识初步四个章节的内容.第一章有理数1.有理数:(1)凡能写成形式的数,都是有理数.正整数、0、负整数统称整数;正分数、负分数统称分数;整数和分数统称有理数.注意:0即不是正数,......
  • 2656-纯easy数学题
    给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分:从 nums 中选择一个元素 m 。将选中的元素 m 从数组中删除。将新元素 m+1 添加到数组中。你的得分增加 m 。请你返回执行以上操作恰好 k 次后的最......
  • 考研数学笔记:一个例子让你明白什么是自由未知数什么是非自由未知数
    什么是自由未知数?什么是非自由未知数?举例来说就是——非自由未知数就像阻挡入侵的“战士”,而自由未知数就是被这些“战士”保护的平民>>>【查看详情】......
  • 数学 Ⅱ
    信息里的数学~数学技巧\(\&\)数列前言:这其中可以观察一个数列的性质,其中潜在的一些关键部分,找到这些突破口轻松解题。\(Problem\1\)\(\color{black}{\rightarrowLink}\)用到了一个很巧妙的点。首先观察数据范围。\(n\leq10^5,a_i\leq10^6\)然而即便是\(1\time......
  • 视觉VO(10-2-1)优化- 重投影误差 数学基础 李群李代数
    自己的手工推导https://www.cnblogs.com/gooutlook/p/16412222.htmlB站教程https://www.bilibili.com/video/BV1LT411V7zv/?spm_id_from=333.788&vd_source=f88ed35500cb30c7be9bbe418a5998ca                    ......
  • MySQL中常见的数学函数
    1.函数用于求绝对值abs() 2.函数返回小于或等于x的最大整数 floor(x) 3.函数是返回0-1的随机数 rand() 4.函数用于返回圆周率 PI() 5.函数返回x保留到小数点后y位的值truncate(x,y) 6.函数对x四舍五入,round(x,y)返回x保留到y位,截断时进行四舍五入处理 round(......
  • mysql函数(三)之常见数学函数
    1、format(x,y)函数功能是将一个数字x,保留y位小数,并且整数部分用逗号分隔千分位,小数部分进行四舍五入,使用示例如下: 2、abs(x);sqrt(x);mod(x,y)①、abs();求一个数的绝对值;absolute②、sqrt();求一个数的平方根。sqrt是sqruar(平方,矩形),root(根)的缩写。③、mod(x,y)......
  • mysql函数(三)之常见的数学函数
    mysql函数(三)之常见的数学函数一、mysql常见数学函数MySQL提供了众多用于处理数字的数学函数,这些函数能够对整数、浮点数等进行一系列操作。以下是一些常用的MySQL数学函数:ABS(x);返回x的绝对值SELECTABS(-1)--返回1 AVG(price);返回一个表达式的平均值,price是一个......
  • 考研数学笔记:线性代数中抽象矩阵性质汇总
    在考研线性代数这门课中,对抽象矩阵(矩阵\(A\)和矩阵\(B\)这样的矩阵)的考察几乎贯穿始终,涉及了很多性质、运算规律等内容,在这篇考研数学笔记中,我们汇总了几乎所有考研数学要用到的抽象矩阵的性质,详情在这里:线性代数抽象矩阵(块矩阵)运算规则(性质)汇总......