使用递归生成格雷码的 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("The number is :") print(my_num) print("Method to convert gray code to binary is being called...") generate_gray_list(my_num)
输出
The number is : 3 Method to convert gray code to binary is being called... 000 001 011 010 110 111 101 100
说明
导入需要的软件包。
定义一个方法,它创建一个空列表。
它在列表后追加 0 和 1。
使用多个“for”循环在 0 和 2 的范围内进行迭代。
在迭代器上使用左移运算符,并将其与数字进行比较。
在此方法之外,通过传递相关的参数来调用它。
输出显示在控制台上。
广告