使用递归生成格雷码的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的范围内迭代。
-
使用左移运算符将迭代器与数字进行比较。
-
在方法外,通过传递相关参数调用它。
-
在控制台上显示输出。