数论基础

ExGcd

以下将通过一个具体的例子,详细演示扩展欧几里得算法(ExGCD)的过程。我们将选择一对整数,逐步展示如何使用 ExGCD 计算它们的最大公约数(GCD)以及对应的贝祖系数。

示例问题

题目: 使用扩展欧几里得算法求解 $ \gcd(252, 198) $,并找到整数 $ x $ 和 $ y $,使得:

\[252x + 198y = \gcd(252, 198) \]

解题步骤

步骤一:应用欧几里得算法求 GCD

首先,我们使用欧几里得算法来计算 $ \gcd(252, 198) $。

\[\begin{align*} 252 &= 198 \times 1 + 54 \quad &(\text{余数 } r_1 = 54) \\ 198 &= 54 \times 3 + 36 \quad &(\text{余数 } r_2 = 36) \\ 54 &= 36 \times 1 + 18 \quad &(\text{余数 } r_3 = 18) \\ 36 &= 18 \times 2 + 0 \quad &(\text{余数 } r_4 = 0) \\ \end{align*} \]

因此,$ \gcd(252, 198) = 18 $。

步骤二:回代求解贝祖系数

接下来,通过扩展欧几里得算法回代,找到整数 $ x $ 和 $ y $,使得:

\[252x + 198y = 18 \]

我们从最后一个非零余数开始回代:

  1. 从第三步开始:

\[18 = 54 - 36 \times 1 \quad (1) \]

  1. 将第二步的余数 $ 36 $ 用第一步的等式表示:

\[36 = 198 - 54 \times 3 \quad (2) \]

  1. 将等式 (2) 代入等式 (1):

\[18 = 54 - (198 - 54 \times 3) \times 1 = 54 - 198 + 54 \times 3 = 54 \times 4 - 198 \]

即:

\[18 = 54 \times 4 - 198 \quad (3) \]

  1. 将第一步的余数 $ 54 $ 用原始数 $ 252 $ 和 $ 198 $ 表示:

\[54 = 252 - 198 \times 1 \quad (4) \]

  1. 将等式 (4) 代入等式 (3):

\[18 = (252 - 198) \times 4 - 198 = 252 \times 4 - 198 \times 4 - 198 = 252 \times 4 - 198 \times 5 \]

因此,贝祖等式的解为:

\[x = 4, \quad y = -5 \]

即:

\[252 \times 4 + 198 \times (-5) = 18 \]

步骤三:验证结果

我们可以通过计算验证上述结果是否正确:

\[252 \times 4 + 198 \times (-5) = 1008 - 990 = 18 \]

验证无误。

步骤四:总结

通过上述步骤,我们使用扩展欧几里得算法成功地找到了 $ \gcd(252, 198) = 18 $,以及满足贝祖等式的整数 $ x = 4 $ 和 $ y = -5 $。

🚧正在施工,目前正在找例题 & 写题解🚧

P1414 又是毕业季II

题意:对于每一个 \(k=i\),在 \(n\) 个数中选择 \(k\) 个,是他们的最大公约数最大。

题解:对于每一个数,把它的因子的 \(\texttt{cnt++}\)。然后从大到小找第一个个数大于 \(k\)\(\texttt{cnt}\),输出。因为答案必然递减,所以查询时间复杂度为 \(O(n)\)Code

P1072 [NOIP2009 提高组] Hankson 的趣味题

题意:求使得 \(\gcd(a, x)=b,\operatorname{lcm}(c, x) = d\)\(x\) 的个数。

题解1:质因子分解,根据 \(a, b\) 算出 \(p_i\) 质数的下限,根据 \(c, d\) 算出 \(p_i\) 的上限。根据乘法原理算出即可。

posted @ 2024-10-10 22:07  qmwneb946  阅读(10)  评论(0编辑  收藏  举报