Python实现的生成格雷码功能示例


Posted in Python onJanuary 24, 2018

本文实例讲述了Python实现的生成格雷码功能。分享给大家供大家参考,具体如下:

问题

在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Code),请编写一个函数,使用递归的方法生成N位的格雷码。

解决方法:

给定一个整数n,请返回n位的格雷码,顺序为从0开始。

测试样例:

返回:["0","1"]

题目很刁钻,题干很简洁,样例很高冷……

Python实现的生成格雷码功能示例

其中有一些微妙的关系

Python实现的生成格雷码功能示例

发现了这个规律之后,代码自然就很好写了

# -*- coding:utf-8 -*-
class GrayCode:
  def getGray(self, n):
    # write code here
    global maxn
    maxn = n
    return GrayCode.getGrace(self, ['0', '1'], 1)
  def getGrace(self, list_grace, n):
    global maxn
    if n >= maxn:
      return list_grace
    list_befor, list_after = [], []
    for i in xrange(len(list_grace)):
      list_befor.append('0' + list_grace[i])
      list_after.append('1' + list_grace[-(i + 1)])
    return GrayCode.getGrace(self, list_befor + list_after, n + 1)
gary = GrayCode()
print "三水点靠木测试结果:"
print gary.getGray(3)

运行结果:

Python实现的生成格雷码功能示例

更多关于Python相关内容可查看本站专题:《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
使用Python抓取模板之家的CSS模板
Mar 16 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
Jun 13 Python
python基于递归解决背包问题详解
Jul 03 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
python中class的定义及使用教程
Sep 18 Python
Python性能分析工具Profile使用实例
Nov 19 Python
使用tensorflow显示pb模型的所有网络结点方式
Jan 23 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
Python字符串格式化常用手段及注意事项
Jun 17 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
Sep 25 Python
python开发一个解析protobuf文件的简单编译器
Nov 17 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 #Python
Python3结合Dlib实现人脸识别和剪切
Jan 24 #Python
深入浅析Python中的yield关键字
Jan 24 #Python
Python3.6安装及引入Requests库的实现方法
Jan 24 #Python
pycharm+django创建一个搜索网页实例代码
Jan 24 #Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 #Python
Sublime开发python程序的示例代码
Jan 24 #Python
You might like
PHP 图片上传代码
2011/09/13 PHP
JoshChen_web格式编码UTF8-无BOM的小细节分析
2013/08/16 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
2019/04/03 PHP
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
鼠标划过实现延迟加载并隐藏层的js代码
2013/10/11 Javascript
javascript通过navigator.userAgent识别各种浏览器
2013/10/25 Javascript
基于jQuery+JSON的省市二三级联动效果
2015/06/05 Javascript
JavaScript中Math对象的方法介绍
2017/01/05 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
基于jQuery和CSS3实现APPLE TV海报视差效果
2017/06/16 jQuery
基于DOM节点删除之empty和remove的区别(详解)
2017/09/11 Javascript
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
2019/03/19 jQuery
jQuery实现简易QQ聊天框
2020/02/10 jQuery
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
Python进阶学习之特殊方法实例详析
2017/12/01 Python
Python pymongo模块用法示例
2018/03/31 Python
详解Django中间件执行顺序
2018/07/16 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Python tkinter模版代码实例
2020/02/05 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
tensorflow2.0的函数签名与图结构(推荐)
2020/04/28 Python
CSS3——齿轮转动关键代码
2013/05/02 HTML / CSS
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
Jones Bootmaker官网:优质靴子和鞋子在线
2020/11/30 全球购物
SQL Server面试题
2013/04/04 面试题
医院护士求职自荐信格式
2013/09/21 职场文书
我有一个梦想演讲稿
2014/05/05 职场文书
数据保密承诺书
2014/06/03 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
速龙x4-860k处理器相当于i几
2022/04/20 数码科技