使用递归生成格雷码的Python程序

使用递归生成格雷码的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的范围内迭代。

  • 使用左移运算符将迭代器与数字进行比较。

  • 在方法外,通过传递相关参数调用它。

  • 在控制台上显示输出。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程