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

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

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

  • 输出显示在控制台上。

更新于: 19-4 月-2021

273 次浏览

开启你的 职业生涯

完成课程即可获得认证

开始使用
广告