歐幾里得以及進制之間的快捷轉換深入理解

1. 歐幾里得算法

1.1 歐幾里得除法定義

  1. aabb兩個整數,b>0b>0,每次更改整數cc的值就一定存在唯一的整數qqrr使得等式成立:a=qb+r,(cr<b+c)a = q \cdot b + r,(c \le r < b + c)

    • 這樣一個通用的定理我們應該從最特殊的情況去了解,最特殊的情況也就是r的絕對值最小的時候,這時候qq的絕對值是小於bb的,但是上面的情況很明顯qq的絕對值可能是大於bb;也就是當qbq \cdot b得到正數的時候,qq進行增加那麼rr自然就會往負數方面減少自然絕對值也就增大了,那麼我們知道最特殊的情況下qqrr都是唯一自然在qbq \cdot b增加rr較少相同數的時候也是唯一的整數

    • 最特殊的情況:a=qb+r,(0r<b+0)a = q \cdot b + r,(0 \le r< b + 0)

      歐幾里得特殊情況

    • 通過我們便於計算都是以上述最特殊的情況進行計算

    • 對於餘數rr有四個概念(記住整個公式中都是以整數爲基礎沒有小數),也就是rr可能取到的值:

      1. 核心思想:區間取值大小固定爲bb,一方增大另一方就要減少;

      2. 具體五種情況:

        1. 最小非負餘數——0作爲可能的最小值(0不符合要求可能就更小),上限對應<b<b
        2. 最小正餘數——1作爲可能的最小值(1不符合要求可能就更小),上限對應<b1<b-1
        3. 最大非正餘數——0作爲可能的最大值(0不符合要求可能就更大),下限對應>b>-b
        4. 最大負餘數——-1作爲可能的最大值(-1不符合要求可能就更大),下限對應>b+1>-b+1
        5. 當r取絕對值最小如下圖,r1r1必然是小於b2\frac{b}{2},那麼r的取值就是:b2r<b2- \frac{b}{2} \le r < \frac{b}{2}b2<rb2\frac{b}{2} < r \le - \frac{b}{2}

        餘數絕對值最小取值

2. 進制之間轉換

2.1 進制概念以及意義

  1. 進制的意義:

    • 往往人比較容易理解十進制,比如:人的身高:175cm;人的體重75kg。但是計算機是以二進制進行計算或者有時候用到八進制、十六進制進行表達,所以在人與機器之間需要進行轉換,對應到實際場景來說就是十進制與其他進制的轉換
  2. 進制的概念

    • 進制由歐幾里得除法推出:n=(q0b+a0)=((q1b+a1)b+a0)=>((qkb+ak)b+)b+a0=>qkbk1++a1b+a0n=({q_0}b + {a_0}) = (({q_1}b + {a_1})b + {a_0}) = > (({q_k}b + {a_k})b + \cdot \cdot \cdot )b + {a_0} = > {q_k}{b^{k - 1}} + \cdot \cdot \cdot + {a_1}b + {a_0}
    • n可以表示成qkbk1++a1b+a0{q_k}{b^{k - 1}} + \cdot \cdot \cdot + {a_1}b + {a_0}這樣一種形式,這裏的k表示的就是k進制
  3. 進制的快捷轉換以及爲什麼能夠這樣進行轉換

    • 161624{2^4})可快捷轉換22進制,這樣一種特例推到一般情況就是兩者形成相應的指數關係就是進行快捷轉換

      進制之間快捷轉換

    • 爲什麼能夠這樣進行轉換?

      • 答:可從最後歐幾里得推導所得的兩種形式進行理解,以轉換爲二進制進行理解,理解如下:

        1. qkbk1++a1b+a0{q_k}{b^{k - 1}} + \cdot \cdot \cdot + {a_1}b + {a_0},每一項都可以化成ak1bk1(ak1)2(2i)k1(ak1)22ik1{a_{k - 1}}{b^{k - 1}} \to {({a_{k - 1}})_2}{({2^i})^{k - 1}} \to {({a_{k - 1}})_2}{2^i}^{ \cdot k - 1},最後一個就是二進制的形式

          第一種推導

        2. ((qkb+ak)b+)b+a0(({q_k}b + {a_k})b + \cdot \cdot \cdot )b + {a_0}

          • 關注核心項qkb+ak{q_k}b + {a_k},其他都是類似的,相互之間進行嵌套,只要這個可以進制轉換那麼其他的一樣沒有問題,所以做這樣的轉換:A163+B(A)2243+(B)2=(A)2212+(B)2A \cdot {16^3} + B \to {(A)_2}{2^{4 \cdot 3}} + {(B)_2} = {(A)_2}{2^{12}} + {(B)_2},和1最後一樣也都轉換成了二進制,所以轉換成功
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章