格雷碼 Python編寫

2021-07-08 22:33:56 字數 867 閱讀 9558

生成格雷碼

在一組數的編碼中,若任意兩個相鄰的**只有一位二進位制數不同, 則稱這種編碼為格雷碼(gray code),請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。

給定乙個整數n,請返回n位的格雷碼,順序為從0開始。

class

graycode:

def__init__

(self):

self.base = ["0", "1"]

defgetnext

(self , prelist,z_or_one):

output =

for code in prelist:

new_code = "%s%s" % (z_or_one,code)

if z_or_one == 1:

output.reverse()

return output

defgray

(self):

haf1 = self.getnext(self.base, 0)

haf2 = self.getnext(self.base, 1)

ret = haf1 + haf2

self.base = ret

defgetgray

(self, n):

for i in range(n-1):

self.gray()

return self.base

a = graycode()

print a.getgray(3)

結果

['000', '001', '011', '010', '110', '111', '101', '100']

生成格雷碼

程式設計題 生成格雷碼 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 思想 用遞迴法實現,把求n位格雷碼分解為求n 1...

生成格雷碼

題目描述 在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼 gray code 請編寫乙個函式,使用遞迴的方法生成n位的格雷碼。給定乙個整數n,請返回n位的格雷碼,順序為從0開始。測試樣例 1返回 0 1 1 n 1時,返回0,1 2 n 2時,返回00,01,10,...

關於格雷碼

典型二進位制格雷碼 binary gray code 簡稱格雷碼,因1953年公開的弗蘭克 格雷 frank gray,18870913 19690523 專利 pulse code communication 而得名。在一組數的編碼中,若任意兩個相鄰的 只有一位二進位制數不同,則稱這種編碼為格雷碼...