生成格雷码。

2024-03-14

我尝试在中生成格雷码Python。这段代码工作正常。问题是我正在初始化基本情况(n=1,[0,1]) 在里面main函数并将其传递给gray_code函数来计算其余部分。我想生成函数本身内部的所有格雷码,包括基本情况。我怎么做?

def gray_code(g,n):
    k=len(g)
    if n<=0:
        return

    else:
        for i in range (k-1,-1,-1):
            char='1'+g[i]
            g.append(char)
        for i in range (k-1,-1,-1):
            g[i]='0'+g[i]

        gray_code(g,n-1)

def main():
    n=int(raw_input())
    g=['0','1']
    gray_code(g,n-1)
    if n>=1:
        for i in range (len(g)):
            print g[i],

main()

是这个算法的递推关系T(n)=T(n-1)+n ?


生成格雷码比您想象的要容易。秘密在于第N个格雷码位于N^(N>>1)的位中

So:

def main():
    n=int(raw_input())
    for i in range(0, 1<<n):
        gray=i^(i>>1)
        print "{0:0{1}b}".format(gray,n),

main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生成格雷码。 的相关文章

随机推荐

  • 具有内联模型表单或表单集的基于 django 类的视图

    我有以下型号 class Bill models Model date models DateTimeField Date of bill null True blank True class Item models Model name
  • 未找到 JSF2.0 标签

    最近我一直在玩 JSF2 0 Richface 3 3 3 我使用 STS 作为我的 IDE 和 Maven 来构建我的项目 但不知何故我无法让以下 JSF2 0 标签工作 h button h link f 元数据 f viewParam
  • 如何解耦小部件的模型/视图

    我正在编写一个应用程序 用于绘制小部件 菜单 控件等以创建应用程序模型 每个屏幕都表示为小部件的集合 每个小部件都是简单的类 例如 class Model object def init self self widgets class Wi
  • 将长格式转换为宽格式

    id lt c 1 8 1 8 age1 lt c 7 5 6 7 8 6 9 5 8 7 6 3 9 5 age2 lt age1 round runif 1 1 3 1 age lt c age1 age2 tanner lt samp
  • ng-bootstrap 在 Angular 4 中不起作用

    我是 Angular 4 的新手 我正在尝试配置引导程序 我安装了 ng bootstrap https ng bootstrap github io getting started https ng bootstrap github io
  • 为 C++ 配置 Vim

    我想让 vim 成为我的 C 编辑器 我对此的使用经验很少 并需要帮助配置 vim 以使用 C 我需要这样的功能 代码完整 对于 stl 和我的课程 在 cc 和 h 文件之间切换 作为 C 和 Vim 大师 您可能还有更多技巧 也许您可以
  • 从 gcc/clang 获取 libasan 的位置

    当我编译时 fsanitize address GCC Clang 隐式使用 ASAN 动态库 为 ASAN 提供运行时支持 如果您构建的库是由另一个应用程序动态加载的 则需要设置LD PRELOAD包含此动态库 以便它在应用程序启动时运行
  • 为什么我不能在 setter 中放置属性名称而不是“value”关键字?

    当我通过 setter 中分配一个值时value关键字 它有效 但是 为什么当我尝试通过属性名称分配值时它不起作用 该属性应该保存相同的分配值 在下面的例子中 我使用valuesetter 中的关键字 它工作得很好 我得到了预期的输出 pr
  • 为什么C中释放的结构体仍然有数据?

    当我运行这段代码时 include
  • JavaScript 对象中的构造函数

    JavaScript 类 对象可以有构造函数吗 它们是如何创建的 使用原型 function Box color Constructor this color color Box prototype getColor function re
  • 重新网格化锯齿状测试数据

    背景 我有 4 组有刷直流电机的数据全部来自同一实验 扭矩与速度 T 与 w 扭矩与效率 T 与 n 扭矩与输入功率 T 与 Pin 扭矩与输出功率 T 与 Pout 然而 每个数据集都有 第一个和最后一个数据对的 x 值略有不同 每个数据
  • Java 中的关键字“transient”是什么意思? [复制]

    这个问题在这里已经有答案了 我在某处看到 transient private TrackDAO trackDAO 您可能首先看看什么序列化 http en wikipedia org wiki Serialization is 它标记一个成
  • 为什么语句“m = ++i ||”中的“k”不递增++j && ++k”? [复制]

    这个问题在这里已经有答案了 第 1 部分 i j k 1 m i j k printf d d d d n i j k m 输出 2 2 1 1 第一部分很容易理解 在这里 i j首先执行 这是正确的 并且增加 i 和 j 的值 因此不需要
  • Pandas:对列表的每个元素使用 groupby

    也许我错过了显而易见的事情 我有一个 Pandas 数据框 如下所示 id product categories 0 Silmarillion Book Fantasy 1 Headphones Electronic Material 2
  • 在追加模式下加载使用 numpy.save 保存的数组

    我在追加模式下使用 numpy save 保存数组 f open try npy ab sp save f 1 2 3 4 5 sp save f 6 7 8 9 10 f close 我可以以 LIFO 模式加载数据吗 也就是说 如果我现
  • 可选协方差在 Swift 中如何工作

    协方差如何发挥作用Optional是 Swift 吗 假设我写了下面的代码 var nativeOptionalView Optional
  • Putty:_tkinter.TclError:无显示名称且无显示环境变量

    链接问题 Mac OS X tkinter TclError 没有显示名称 也没有 DISPLAY 环境变量 https stackoverflow com questions 13286324 mac os x tkinter tcler
  • 我怎样才能让这个希伯来语字符串替换起作用?

    我想用希伯来语字符串替换这个占位符 但不幸的是字符串替换不起作用 看起来在希伯来语字符串中根本找不到占位符字符串 Test public void Fancy placeholder should be replaced const str
  • Spring Boot 中的全局方法安全性

    我在尝试在 Spring Boot 应用程序中启用全局方法安全性时遇到一些问题 或多或少我有这样的配置 ComponentScan Configuration EnableAutoConfiguration EnableConfigurat
  • 生成格雷码。

    我尝试在中生成格雷码Python 这段代码工作正常 问题是我正在初始化基本情况 n 1 0 1 在里面main函数并将其传递给gray code函数来计算其余部分 我想生成函数本身内部的所有格雷码 包括基本情况 我怎么做 def gray