使用递归生成格雷码的 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("号码是:")

print(my_num)

print("正在调用将格雷码转换为二进制的方法...")

generate_gray_list(my_num)

输出结果
号码是:

3

正在调用将格雷码转换为二进制的方法...

000

001

011

010

110

111

101

100

解释

  • 导入所需的包。

  • 定义了一个方法,它创建一个空列表。

  • 它将 0 和 1 附加到列表中。

  • 多个“for”循环用于在 0 和 2 范围内迭代。

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

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

  • 输出显示在控制台上。

以上是 使用递归生成格雷码的 Python 程序 的全部内容, 来源链接: utcz.com/z/358109.html

回到顶部