格雷码(Gray Code)是一种二进制数字系统,在这种编码中,两个连续的数值仅有一个二进制位不同。这种方法由贝尔实验室的工程师弗兰克·格雷(Frank Gray)于 20 世纪 50 年代发明,用于模拟和数字系统之间的转换。
以下是使用 Python 实现格雷码生成器的方法:
```python def gray_code(n: int) -> list: result = [] for i in range(1 << n): result.append(i ^ (i >> 1)) return result
n = 3 # 生成包含 2^3 = 8 个格雷码的列表 gray_codes = gray_code(n) print(gray_codes) ```
在这个例子中,我们定义了一个名为 gray_code
的函数,它接受一个整数参数 n
,表示要生成的格雷码位数。通过遍历从 0 到 2^n - 1 的整数,并使用异或运算符(^)将其与右移一位后的值进行异或,我们可以得到对应的格雷码序列。
例如,当 n = 3 时,输出的格雷码序列为:[0, 1, 3, 2, 6, 7, 5, 4]。这个序列包含了 2^3 = 8 个格雷码。