为什么计算机的编码那么多,为什么中国剩余定理可用于计算机编码?
我們已經知道了“中國剩余定理”,即“韓信點兵”問題,它是中國古代數學中的一項重大成就,其內容屬于數論中的一次同余數組的解法。而這一古老的知識,現在在計算機編碼方面也找到了新的用途。
“韓信點兵”問題的答案可以有很多,它們之間都相差105(即3×5×7),但在105之內的解是唯一的。
現在我們來簡化一下個一數余2,5個一數余3,這樣的數是多少呢?不難求出,是8,23,38,53,…,它們之間都相差15(即3×5)。面在15之內解是唯一的:8。那么,這樣的題目可以編出多少個呢?3個一數,余數可以是0、1、2,共3種;5個一數,余數可以是0、1、2、3、4,共5種,合起來共3×5,即15種。
就是說,可以編15個這樣的題目,它們的答案各不相同,而且在15之內解又都是唯一的。可見,這15道題的答案正好分別等于1,2,3,…,15。
現在,把這15個數一一填入一個3×5的方格紙的方格內,使得每個數所在的行數是這個數3個一數的余數,所在的列數是這個數5個一數的余數。
比如8,是“3個一數余2”,就填在第二行,它又是“5個一數余3”,就填在第三列。
任何一臺計算機,都有一定的“字長”。字長就是它所能處理的數的最大位數。那么,當我們要利用計算機來處理一個位數超過額定字長的數據時,該怎么辦呢?通常的辦法是將這個大數用兩個小一點的數來表示。
最簡單的方法是把大數分成兩段,如3517,可以分成35和17兩個小一點的數。但是這樣做,計算機在運算時困難較大,因而一般認為是不可取的。
利用中國剩余定理,可以將一個大數用兩個較小的數表示(或編碼),并且使計算機運算起來十分方便。我們來看前面說過的3x5的方格紙,8填在第二行、第三列,它可以用2和3來表示;同理15可以用3和5來表示……如果我們的計算機原來只能處理5以內的數,現在就可以處理到15了。
而且,這樣編碼后,運算也十分方便。
比如,在第二列中取一個數2,第三列中取一個數3,它們的積是6,在第一列。而且,第二列中的任何數與第三列中的任何數的積必定在第一列(當積超出15時,可以按前面的方法繼續將16,17,…填在3×5的方格中)。
這是什么緣故呢?原來,在同余式理論中,如果x1≡x2(mod5),y1≡y2(mod5)
(即x1和x2被5除后有相同的余數;y1和y2被5除后有相同的余數),那么x1y1≡x2y2(mod5),也就是和被5除以后有相同的余數。利用這個性質就可以證明,與2和3同列(同在一列的數被5除后有相同的余數)的數的積必與6同余,即同在一列。
對行也有相同的結果。
這樣一來,計算機在進行大數的運算時就十分方便。例如,我們要做乘法2x6,我們首先對兩個數進行編碼:
2——(第二行、第二列);
6——(第三行、第一列)。
可以證明,第二行與第三行中的數的積必在第三行;第二列與第一列中的數的積必在第二列。
于是,積可以用3與2表示(或編碼)。從表中一查,即可知2x6的積為12。
也就是說,先把兩個大數分別表示為兩個較小的數(表中的行、列的序號);然后根據兩個行的序號定出兩個大數積的行序號,根據兩個列的序號定出積的列序號;最后,根據積的行和列的序號在表中就可以查出積的數值,這樣,計算機就可以很方便地求出大數的乘積了。
因此,利用中國剩余定理進行計算機編碼是非常有用的,我們祖先的智慧進一步地體現在了現代科技中。
全部
總結
以上是生活随笔為你收集整理的为什么计算机的编码那么多,为什么中国剩余定理可用于计算机编码?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一台计算机只能安装一块网络接口卡,为什么
- 下一篇: 计算机屏幕显示电缆借口,电脑关机后显示器