<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      歐幾里得算法與擴展歐幾里得算法詳解

      在數論和密碼學中,歐幾里得算法(Euclidean Algorithm)是一個古老而重要的算法,用于計算兩個整數的最大公約數(GCD)。

      歐幾里得算法(更相減損法)

      歐幾里得算法基于以下原理:兩個整數的最大公約數等于其中較小的數和兩數相除余數的最大公約數。用數學公式表示為:

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

      當余數為0時,此時的除數就是最大公約數。

      1. 較大數除以較小數,得到余數
      2. 較小數除以余數,再次得到新的余數
      3. 重復這個過程,直到余數為0
      4. 此時的除數就是最大公約數
      // 遞歸實現
      int gcd_recursive(int a, int b) {
          if (b == 0) return a;
          return gcd_recursive(b, a % b);
      }
      
      // 迭代實現
      int gcd_iterative(int a, int b) {
          while (b != 0) {
              int temp = b;
              b = a % b;
              a = temp;
          }
          return a;
      }
      

      中國古代的更相減損術是中國古代數學著作《九章算術》中記載的一種求最大公約數的方法,成書于東漢時期(約公元1世紀)。《九章算術》的"方田"章中記載:

      "約分術曰:可半者半之,不可半者,副置分母、子之數,以少減多,更相減損,求其等也。以等數約之。"

      更相減損術的核心思想是:兩個數的最大公約數等于較小數與兩數差的最大公約數。用現代數學符號表示為:

      \[\gcd(a, b) = \gcd(\min(a, b), |a - b|) \]

      當兩數相等時,這個相等的數就是最大公約數。減法實際上可以替換為除法取余(減到不能再減),這樣就接近現代使用的歐幾里得算法了。

      歐幾里得算法的時間復雜度

      其時間復雜度為 \(O(\log(\min(a, b)))\)

      可以使用數學知識證明(有難度),歐幾里得算法在計算 \(\gcd(a, b)\) 時,最多執行 \(2 \cdot \lfloor \log_2 b \rfloor + 1\) 次除法操作(最壞情況為當輸入為連續的斐波那契數時)。平均除法的次數是 \(\frac{12 \ln 2}{\pi^2} \ln n \approx 0.843 \ln n\)

      擴展歐幾里得算法

      擴展歐幾里得算法不僅計算 \(\gcd(a, b)\),還找到整數 \(x\)\(y\),使得滿足貝祖等式

      \[ax + by = \gcd(a, b) \]

      即讓 \(a\)\(b\) "拼出" 其最大公約數。

      在歐幾里得算法的每一步中,我們有:

      • \(a = bq + r\),其中 \(q\) 是商,\(r\) 是余數
      • \(\gcd(a, b) = \gcd(b, r)\)

      我們可以將余數 \(r\) 表示為:

      • \(r = a - bq\)

      在遞歸的返回過程中,我們利用這個關系來構造 \(x\)\(y\)

      int extended_gcd(int a, int b, int &x, int &y) {
          if (b == 0) {
              x = 1;
              y = 0;
              return a;
          }
          
          int x1, y1;
          int gcd = extended_gcd(b, a % b, x1, y1);
          
          x = y1;
          y = x1 - (a / b) * y1;
          
          return gcd;
      }
      

      擴展歐幾里得算法可以用于求解形如 \(ax \equiv b \pmod{m}\) 的線性同余方程(也包括求解乘法逆元)。

      posted @ 2025-10-03 20:49  Ofnoname  閱讀(92)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 乱60一70归性欧老妇| 中文字幕在线日韩| 日韩69永久免费视频| 免费人妻无码不卡中文字幕18禁| 久久精品色妇熟妇丰满人| 欧美精品国产综合久久| 国产欧美日韩高清在线不卡| 久色伊人激情文学你懂的| 狠狠躁天天躁中文字幕无码| 国产精品视频白浆免费视频| 久久午夜无码免费| 久久国产精品波多野结衣av| 成人3d动漫一区二区三区| 欧美午夜小视频| 国产草草影院ccyycom| 蜜臀av久久国产午夜| 国产精品毛片一区视频播| 国产乱码日产乱码精品精| 亚洲春色在线视频| 国产h视频在线观看| 天天综合天天添夜夜添狠狠添| 日本高清一区免费中文视频| 久久亚洲精品成人av秋霞| 国产成人精品免费视频大全| 黑人精品一区二区三区不| 久久国产免费观看精品3| 亚洲AV成人片在线观看| 国产亚洲精品成人aa片新蒲金 | 西西人体44WWW高清大胆| 免费a级黄毛片| 一级女性全黄久久片免费| 国产精品综合一区二区三区| 亚洲一区二区三区蜜桃臀| 99久久婷婷国产综合精品青草漫画| 国产麻豆精品一区一区三区| 五月天国产成人av免费观看| 中文国产日韩欧美二视频| 国产午夜精品理论大片| 精品国产免费一区二区三区香蕉| 久久国产乱子精品免费女| 亚洲成a人片在线视频|