使用递归生成格雷码的 Python 程序
pythonserver side programmingprogramming
当需要借助递归生成格雷码时,会定义一个方法,该方法创建一个空列表并将值 0 和 1 附加到其中。在函数中使用多个‘for’循环来生成格雷码。
以下是同样的演示 −
示例
import math as mt def generate_gray_list(my_val): if (my_val <= 0): return my_list = list() my_list.append("0") my_list.append("1") i = 2 j = 0 while(True): if i >= 1 << my_val: break for j in range(i - 1, -1, -1): my_list.append(my_list[j]) for j in range(i): my_list[j] = "0" + my_list[j] for j in range(i, 2 * i): my_list[j] = "1" + my_list[j] i = i << 1 for i in range(len(my_list)): print(my_list[i]) my_num = 3 print("数字是:") print(my_num) print("正在调用将格雷码转换为二进制的方法...") generate_gray_list(my_num)
输出
数字是: 3 正在调用将格雷码转换为二进制的方法... 000 001 011 010 110 111 101 100
解释
已导入所需包。
已定义一个方法,该方法创建一个空列表。
它将 0 和 1 附加到列表中。
多个‘for’循环用于在0到2的范围内迭代。
对迭代器使用左移运算符,并与数字进行比较。
在方法外部,通过传递相关参数进行调用。
输出显示在控制台上。