主題
Search

格雷碼


格雷碼是一種數字編碼方式,使得相鄰數字之間只有一個數字的差異為 1。“格雷碼”一詞通常用於指“反射”碼,更具體地說是指二進位制反射格雷碼。

要將二進位制d_1d_2...d_(n-1)d_n 轉換為其對應的二進位制反射格雷碼,從右側的數字 d_n (第 n個或最後一個數字)開始。如果 d_(n-1) 為 1,則將 d_n 替換為 1-d_n ;否則,保持不變。然後繼續到 d_(n-1) 。繼續直到第一個數字 d_1 ,由於 d_0 被假定為 0,所以保持不變。結果數字 g_1g_2...g_(n-1)g_n 是反射二進位制格雷碼。

要將二進位制反射格雷碼 g_1g_2...g_(n-1)g_n 轉換為二進位制數,再次從第 n 位數字開始,並計算

 Sigma_n=sum_(i=1)^(n-1)g_i (mod 2).

如果 Sigma_n 為 1,則將 g_n 替換為 1-g_n ;否則,保持不變。接下來計算

 Sigma_(n-1)=sum_(i=1)^(n-2)g_i (mod 2),

等等。結果數字 d_1d_2...d_(n-1)d_n 是對應於初始二進位制反射格雷碼的二進位制數。

該程式碼被稱為反射碼,因為它可以透過以下方式生成。取格雷碼 0, 1。先正向寫,再反向寫:0, 1, 1, 0。然後在前半部分前面加上 0,後半部分前面加上 1:00, 01, 11, 10。繼續,寫 00, 01, 11, 10, 10, 11, 01, 00 得到:000, 001, 011, 010, 110, 111, 101, 100, ... (OEIS A014550)。因此,每次迭代都會使程式碼數量翻倍。

Binary plot of the Gray code

上面的圖表顯示了前 255 個(上圖)和前 511 個(下圖)格雷碼的二進位制表示。下表給出了對應於前幾個非負整數的格雷碼。

00201111040111100
11211111141111101
211221110142111111
310231110043111110
4110241010044111010
5111251010145111011
6101261011146111001
7100271011047111000
81100281001048101000
91101291001149101001
101111301000150101011
111110311000051101010
1210103211000052101110
1310113311000153101111
1410013411001154101101
1510003511001055101100
16110003611011056100100
17110013711011157100101
18110113811010158100111
19110103911010059100110

二進位制反射格雷碼與河內塔和中國環的解,以及超立方體圖的哈密頓環(包括方向反轉;Skiena 1990,第 149 頁)密切相關。


另請參閱

中國環, 二進位制, 希爾伯特曲線, Ryser 公式, 圖厄-摩爾斯序列, 河內塔

使用 探索

參考文獻

Gardner, M. “二進位制格雷碼”。《纏結的甜甜圈和其他數學娛樂》第 2 章。紐約:W. H. Freeman,1986 年。Gilbert, E. N. “n 維立方體上的格雷碼和路徑。”Bell System Tech. J. 37, 815-826, 1958.Gray, F. “脈衝編碼通訊。”美國專利號 2632058. 1953 年 3 月 17 日。Nijenhuis, A. 和 Wilf, H. 《計算機和計算器的組合演算法》第 2 版。紐約:Academic Press,1978 年。Press, W. H.; Flannery, B. P.; Teukolsky, S. A.; 和 Vetterling, W. T. “格雷碼”。《Fortran 數值方法:科學計算的藝術》第 2 版第 20.2 節。英國劍橋:Cambridge University Press,第 886-888 頁,1992 年。Skiena, S. “格雷碼”。《用 Mathematica 實現離散數學:組合數學和圖論》第 1.5.3 節。馬薩諸塞州雷丁:Addison-Wesley,第 42-43 頁和 149 頁,1990 年。Sloane, N. J. A. “整數序列線上百科全書”中的序列 A014550Vardi, I. 《Mathematica 計算娛樂》。加利福尼亞州紅木城:Addison-Wesley,第 111-112 頁和 246 頁,1991 年。Wilf, H. S. 《組合演算法:更新》。賓夕法尼亞州費城:SIAM,1989 年。

在 中被引用

格雷碼

請這樣引用

Weisstein, Eric W. “格雷碼”。來自 Web 資源。 https://mathworld.tw/GrayCode.html

學科分類