色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

python 格雷碼

夏志豪2年前7瀏覽0評論

Python中的格雷碼是一種二進制編碼方式,其中相鄰兩個數的二進制位只有一個位不同。在計算機科學中應用廣泛,特別是在數字信號處理和數據通信中。

def gray_code(n):
"""
格雷碼生成函數
:param n: 格雷碼位數
:return: 格雷碼列表
"""
if n == 1:
return ['0', '1']
else:
res = []
old_gray_code = gray_code(n - 1)
for i in range(len(old_gray_code)):
res.append('0' + old_gray_code[i])
for i in range(len(old_gray_code) - 1, -1, -1):
res.append('1' + old_gray_code[i])
return res

上述代碼是生成格雷碼的Python函數,其中輸入參數n表示格雷碼的位數,返回一個列表表示所有的格雷碼。格雷碼的生成過程可以簡單描述為:

  1. 當n=1時,返回['0','1']。
  2. 當n大于1時,將n-1的格雷碼列表賦值給old_gray_code。
  3. 將old_gray_code中的每個二進制數的前面添加一個0,然后添加到res列表中。
  4. 將old_gray_code中的每個二進制數從后往前遍歷,添加一個1,然后添加到res列表中。
  5. 返回res列表。

使用這個函數可以很方便的生成n位格雷碼。

>>>gray_code(3)
['000', '001', '011', '010', '110', '111', '101', '100']
>>>gray_code(4)
['0000', '0001', '0011', '0010', '0110', '0111', '0101', '0100', '1100', '1101', '1111', '1110', '1010', '1011', '1001', '1000']