国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

數(shù)論——?dú)W幾里得算法、裴蜀定理、擴(kuò)展歐幾里得算法 學(xué)習(xí)筆記

這篇具有很好參考價(jià)值的文章主要介紹了數(shù)論——?dú)W幾里得算法、裴蜀定理、擴(kuò)展歐幾里得算法 學(xué)習(xí)筆記。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

數(shù)論——?dú)W幾里得算法、裴蜀定理、擴(kuò)展歐幾里得算法

引入

最大公約數(shù)

最大公約數(shù)即為 Greatest Common Divisor,??s寫(xiě)為 gcd。

一組整數(shù)的公約數(shù),是指同時(shí)是這組數(shù)中每一個(gè)數(shù)的約數(shù)的數(shù)。\(\pm 1\) 是任意一組整數(shù)的公約數(shù);
一組整數(shù)的最大公約數(shù),是指所有公約數(shù)里面最大的一個(gè)。

特殊的,我們定義 \(\gcd(a, 0) = a\)。

最小公倍數(shù)

最小公倍數(shù)即為 Least Common Multiple,常縮寫(xiě)為 lcm。

一組整數(shù)的公倍數(shù),是指同時(shí)是這組數(shù)中每一個(gè)數(shù)的倍數(shù)的數(shù)。\(0\) 是任意一組整數(shù)的公倍數(shù);
一組整數(shù)的最小公倍數(shù)(Least Common Multiple, LCM),是指所有正的公倍數(shù)里面,最小的一個(gè)數(shù)。

互質(zhì)

如果兩個(gè)數(shù) \(a\)\(b\) 滿足 \(\gcd(a, b) = 1\),我們稱 \(a\)\(b\) 互質(zhì),記作 \(a\perp b\)。

歐幾里得算法

歐幾里得算法(Euclidean algorithm),是求解兩個(gè)數(shù)最大公約數(shù)的最常用的算法。

算法思想

\(\gcd(a, b) = \gcd(b, a \bmod b)\)

具體證明見(jiàn):OI-Wiki。

代碼

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

因此也有遞歸寫(xiě)法:

int gcd(int a, int b) {
    int tmp;
    while (b != 0) tmp = a, a = b, b = tmp % b;
    return a;
}

對(duì)于 C++14,我們可以使用 中的 __gcd(a,b) 函數(shù)來(lái)求最大公約數(shù)。

時(shí)間復(fù)雜度

在輸入為兩個(gè)長(zhǎng)為 \(n\) 的二進(jìn)制整數(shù)時(shí),歐幾里得算法的時(shí)間復(fù)雜度為 \(O(n)\);
換句話說(shuō),在默認(rèn) \(a, b\) 同階的情況下,時(shí)間復(fù)雜度為 \(O(\log\max(a, b))\)。

歐幾里得算法的最劣時(shí)間復(fù)雜度情況是 \(\gcd(\operatorname{Fib}_{n + 1}, \operatorname{Fib}_n)\),其時(shí)間復(fù)雜度為 \(O(n)\);
但是,有 \(\gcd(\operatorname{Fib}_{n + 1}, \operatorname{Fib}_n) = \operatorname{Fib}_{\gcd(n + 1, n)}\)。

最小公倍數(shù)

計(jì)算

\(\gcd(a, b) \times \operatorname{lcm}(a, b) = a \times b\)。

要求兩個(gè)數(shù)的最小公倍數(shù),先求出最大公約數(shù)即可。

證明

設(shè) \(a = p_1^{k_{a_1}}p_2^{k_{a_2}} \dots p_s^{k_{a_s}}\),\(b = p_1^{k_{b_1}}p_2^{k_{b_2}} \dots p_s^{k_{b_s}}\)。

我們發(fā)現(xiàn),對(duì)于 \(a\)\(b\) 的情況,二者的最大公約數(shù)等于 \(p_1^{\min(k_{a_1}, k_{b_1})}p_2^{\min(k_{a_2}, k_{b_2})} \dots p_s^{\min(k_{a_s}, k_{b_s})}\)。

最小公倍數(shù)等于 \(p_1^{\max(k_{a_1}, k_{b_1})}p_2^{\max(k_{a_2}, k_{b_2})} \dots p_s^{\max(k_{a_s}, k_{b_s})}\)

由于 \(k_a + k_b = \max(k_a, k_b) + \min(k_a, k_b)\),
所以得到結(jié)論是 \(\gcd(a, b) \times \operatorname{lcm}(a, b) = a \times b\)。

裴蜀定理

定義

\(a\)、\(b\) 是不全為零的整數(shù),則存在整數(shù) \(x\)、\(y\),使得 \(ax + by = \gcd(a, b)\)。

推廣

\(A[1 \sim n]\) 是非零整數(shù)序列,則整數(shù)序列 \(X[1 \sim n]\) 一定滿足:

\(\displaystyle \sum_{i = 1}^n A_iX_i = k \times \gcd(A_1, A_2, \dots, A_n)\),其中 \(k\) 為正整數(shù)。

擴(kuò)展歐幾里得算法

擴(kuò)展歐幾里得算法(Extended Euclidean algorithm,EXGCD),常用于求 \(ax + by = \gcd(a, b)\) 的一組可行解。

算法思路

對(duì)于 \(ax + by = \gcd(a, b)\),考慮與歐幾里得算法相似的思路:

結(jié)論:
求一組解 \(x'\)、\(y'\),使得 \(bx' + (a \bmod b)y' = \gcd(b, a \bmod b)\)
(歐幾里得定理)\(\gcd(a, b) = \gcd(b, a \bmod b)\) \(bx' + (a \bmod b)y' = \gcd(a, b)\)
(模運(yùn)算的定義)\(a \bmod b = a - \lfloor \dfrac{a} \rfloor \times b\) \(bx' + (a - \lfloor \dfrac{a} \rfloor \times b)y' = \gcd(a, b)\)
整理,得 \(ay' + b(x' - \lfloor \dfrac{a} \rfloor \times y') = \gcd(a, b)\)

我們要求一組解,使得 \(ax + by = \gcd(a, b)\)

因此有一組解為 \(\left\{\begin{array}{l} x = y' \\ y = x' - \lfloor \dfrac{a} \rfloor \times y'\end{array}\right.\)

其邊界值為 \(b = 0\),這時(shí)有 \(ax = \gcd(a, 0) = a\),既有 \(x = 1\);為了方便起見(jiàn),我們?nèi)?\(y = 0\)

即:若 \(b = 0\),則取 \(\left\{\begin{array}{l} x = 1 \\ y = 0\end{array}\right.\)

代碼

來(lái)自 OI-Wiki:

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

簡(jiǎn)化后可以寫(xiě)作:

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

特解到通解

假設(shè)我們現(xiàn)在求出了一組特解 \(x_0\)、\(y_0\),使得 \(ax_0 + by_0 = \gcd(a, b)\)
接下來(lái):

\[\begin{array}{rl} ax_0 + by_0 &= \gcd(a, b) \\ (ax_0 + H) + (by_0 - H) &= \gcd(a, b) \\ a(x_0 + H / a) + b(y_0 - H / b) &= \gcd(a, b) \end{array} \]

可以看出 \(H\) 即是 \(a\) 的倍數(shù),又是 \(b\) 的倍數(shù),
所以 \(H = k \times \operatorname{lcm}(a, b)\),其中 \(k\) 可以是任意整數(shù)。

即:\(\left\{\begin{array}{l} x = x_0 + k \times \dfrac{\operatorname{lcm}(a, b)}{a} \\ y = y_0 + k \times \dfrac{\operatorname{lcm}(a, b)}\end{array}\right.\). 其中 \(k \in \mathbb{Z}\).

Reference

[1] https://oi-wiki.org/math/number-theory/bezouts/
[2] https://oi-wiki.org/math/number-theory/gcd/文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-710173.html

到了這里,關(guān)于數(shù)論——?dú)W幾里得算法、裴蜀定理、擴(kuò)展歐幾里得算法 學(xué)習(xí)筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Exgcd(拓展歐幾里得算法)的初步理解

    若a,b是整數(shù),且 gcd(a,b)=d ,那么對(duì)于任意的整數(shù)x,y,ax+by都一定是d的倍數(shù),特別地,一定存在整數(shù)x,y,使ax+by=d成立。它的一個(gè)重要推論是:a,b互質(zhì)的充分必要條件是存在整數(shù)x,y使ax+by=1. 針對(duì)于一次不定方程 ax+by=c 進(jìn)行求解,利用以上的裴蜀定理可以進(jìn)行求解,當(dāng)然要滿足 gcd(a,b)|

    2024年02月16日
    瀏覽(26)
  • 一文看懂什么是歐幾里得算法!多圖演示輾轉(zhuǎn)相除算法究竟是什么!為什么要這樣開(kāi)展!多圖預(yù)警!

    一文看懂什么是歐幾里得算法!多圖演示輾轉(zhuǎn)相除算法究竟是什么!為什么要這樣開(kāi)展!多圖預(yù)警!

    ps:全文圖片均為手繪,如果有不標(biāo)準(zhǔn)的地方還望諒解,之后會(huì)慢慢熟悉畫(huà)圖工具的,感謝感謝!?。?歐幾里得算法 又稱為 輾轉(zhuǎn)相除法 ,是指用于計(jì)算兩個(gè)非負(fù)整數(shù)a,b的最大 公約數(shù) 。 兩個(gè)整數(shù)的最大公約數(shù)是指能夠同時(shí)整除它們的最大的正整數(shù)。 輾轉(zhuǎn)相除法能夠?qū)崿F(xiàn)效

    2024年02月02日
    瀏覽(41)
  • 快樂(lè)地談?wù)劊宏P(guān)于RSA算法中求私鑰d的歐幾里得方法(輾轉(zhuǎn)相除法)考試向的欸

    快樂(lè)地談?wù)劊宏P(guān)于RSA算法中求私鑰d的歐幾里得方法(輾轉(zhuǎn)相除法)考試向的欸

    關(guān)于RSA算法本身,就提及一下,它是屬于非對(duì)稱密碼體制. 基本的加密方式就如下圖所示: c為加密后的密文,m為加密前的明文 其中一般會(huì)給出公開(kāi)密鑰n、e的值,這樣根據(jù)規(guī)則,便可以實(shí)現(xiàn)加密過(guò)程。而題目往往需要進(jìn)行解密,那么就需要 先求解出p、q,隨后再求解出私鑰

    2024年02月04日
    瀏覽(24)
  • Python歐幾里得距離變換

    edt ,即 Euclidean distance transform. ,歐氏距離變換。對(duì)于一個(gè)二值矩陣 A A A ,元素 a ∈ A ain A a ∈ A ,則 edt ? ( a ) operatorname{edt}(a) edt ( a ) 為 a a a 到矩陣中0元素的最短距離。假設(shè)現(xiàn)有一矩陣 A = [ 0 1 1 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 ] A = begin{bmatrix} 01111\\\\ 00111\\\\ 01111\\\\ 01110\\\\

    2024年02月06日
    瀏覽(26)
  • 【非歐幾里得域信號(hào)的信號(hào)處理】使用經(jīng)典信號(hào)處理和圖信號(hào)處理在一維和二維歐幾里得域信號(hào)上應(yīng)用低通濾波器研究(Matlab代碼實(shí)現(xiàn))

    【非歐幾里得域信號(hào)的信號(hào)處理】使用經(jīng)典信號(hào)處理和圖信號(hào)處理在一維和二維歐幾里得域信號(hào)上應(yīng)用低通濾波器研究(Matlab代碼實(shí)現(xiàn))

    ????????? 歡迎來(lái)到本博客 ???????? ??博主優(yōu)勢(shì): ?????? 博客內(nèi)容盡量做到思維縝密,邏輯清晰,為了方便讀者。 ?? 座右銘: 行百里者,半于九十。 ?????? 本文目錄如下: ?????? 目錄 ??1 概述 ??2 運(yùn)行結(jié)果 2.1 算例1 2.2 算例2 2.3 算例3? 2.4 算例4?

    2024年02月13日
    瀏覽(34)
  • 機(jī)器學(xué)習(xí)中的數(shù)學(xué)——距離定義(一):歐幾里得距離(Euclidean Distance)

    分類目錄:《機(jī)器學(xué)習(xí)中的數(shù)學(xué)》總目錄 相關(guān)文章: · 距離定義:基礎(chǔ)知識(shí) · 距離定義(一):歐幾里得距離(Euclidean Distance) · 距離定義(二):曼哈頓距離(Manhattan Distance) · 距離定義(三):閔可夫斯基距離(Minkowski Distance) · 距離定義(四):切比雪夫距離(

    2023年04月11日
    瀏覽(22)
  • 【抽象代數(shù)】素理想、極大理想、唯一析因環(huán)、主理想整環(huán)、歐幾里得環(huán)

    設(shè) R R R 是一個(gè)環(huán), I I I 是 R R R 的理想,若 a b ∈ I ? a ∈ I abin I Rightarrow a in I a b ∈ I ? a ∈ I 或 b ∈ I b in I b ∈ I ,則稱 I I I 是素理想。 例: 整數(shù)環(huán) p p p (由元素p生成的主理想), 若p是素?cái)?shù),且 a b ∈ ? p ab in p a b ∈ ? p ,則 p ∣ a b p | ab p ∣ a b , p ∣ a 或 p ∣

    2024年02月09日
    瀏覽(21)
  • 算法基礎(chǔ)-數(shù)學(xué)知識(shí)-歐拉函數(shù)、快速冪、擴(kuò)展歐幾里德、中國(guó)剩余定理

    算法基礎(chǔ)-數(shù)學(xué)知識(shí)-歐拉函數(shù)、快速冪、擴(kuò)展歐幾里德、中國(guó)剩余定理

    互質(zhì)就是兩個(gè)數(shù)的最大公因數(shù)只有1,體現(xiàn)到代碼里面就是 a和b互質(zhì),則b mod a = 1 mod a (目前我不是很理解,但是可以這樣理解:a和b的最大公因數(shù)是1,即1作為除數(shù)和b作為除數(shù)時(shí),對(duì)于被除數(shù)a來(lái)說(shuō)余數(shù)是一樣的,即1/a的余數(shù)和b/a是一樣的,即 b mod a = 1 mod a ) 歐拉函數(shù)的作用是

    2024年02月09日
    瀏覽(24)
  • 數(shù)論——中國(guó)剩余定理、擴(kuò)展中國(guó)剩余定理 學(xué)習(xí)筆記

    中國(guó)剩余定理(Chinese Remainder Theorem,CRT) 求解如下形式的一元線性同余方程組(其中 (m) 兩兩互質(zhì)): $left{begin{matrix}x equiv a_1 pmod {m_1} \\\\x equiv a_2 pmod {m_2} \\\\ dots \\\\x equiv a_k pmod {m_k}end{matrix}right.$ 計(jì)算所有模數(shù)的積 (M = prod m_i) ; 對(duì)于第 (i) 個(gè)方程: 計(jì)算: (M_i

    2024年02月08日
    瀏覽(22)
  • 裴蜀定理

    目錄 裴蜀定理 OJ實(shí)戰(zhàn) 力扣?1250. 檢查「好數(shù)組」 力扣?2543. 判斷一個(gè)點(diǎn)是否可以到達(dá) 裴蜀定理:若a,b是整數(shù),且gcd(a,b)=d,那么對(duì)于任意的整數(shù)x,y,ax+by都一定是d的倍數(shù),特別地,一定存在整數(shù)x,y,使ax+by=d成立。 給你一個(gè)正整數(shù)數(shù)組? nums ,你需要從中任選一些子集,然后將

    2024年02月14日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包