使用递归生成格雷码的 Python 程序
当需要借助递归生成格雷码时,定义了一个方法,该方法创建一个空列表并向其附加值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范围内迭代。
左移运算符用于迭代器并与数字进行比较。
在方法外,通过传递相关参数来调用。
输出显示在控制台上。