使用递归生成格雷码的 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 的范围内进行迭代。
在迭代器上使用左移运算符,并将其与数字进行比较。
在此方法之外,通过传递相关的参数来调用它。
输出显示在控制台上。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP