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实现TCP服务器端与客户端的方法详解
Apr 30 Python
Python扫描IP段查看指定端口是否开放的方法
Jun 09 Python
python 字典修改键(key)的几种方法
Aug 10 Python
深入理解python中sort()与sorted()的区别
Aug 29 Python
Python函数和模块的使用总结
May 20 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
Jun 04 Python
python如何基于redis实现ip代理池
Jan 17 Python
Python守护进程实现过程详解
Feb 10 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
python3.4中清屏的处理方法
Jul 06 Python
Python的信号库Blinker用法详解
Dec 31 Python
Python实现一个论文下载器的过程
Jan 18 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
一个连接两个不同MYSQL数据库的PHP程序
2006/10/09 PHP
PHP5.5和之前的版本empty函数的不同之处
2014/06/13 PHP
php实现的递归提成方案实例
2015/11/14 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
用javascript实现给出的盒子的序列是否可连为一矩型
2007/08/30 Javascript
js trim函数 去空格函数与正则集锦
2009/11/20 Javascript
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
JavaScript事件委托技术实例分析
2015/02/06 Javascript
nodejs实现获取某宝商品分类
2015/05/28 NodeJs
jQuery EasyUI 布局之动态添加tabs标签页
2015/11/18 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
基于windows下pip安装python模块时报错总结
2018/06/12 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
在Python中定义一个常量的方法
2018/11/10 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
美国在线家具网站:GDFStudio
2021/03/13 全球购物
什么是URL
2015/12/13 面试题
石油大学毕业生自荐信
2014/01/28 职场文书
投资合作协议书
2014/04/17 职场文书
乱丢垃圾袋检讨书
2014/10/08 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
评先进个人材料
2014/12/29 职场文书
小学语文复习计划
2015/01/19 职场文书
公司宣传语大全
2015/07/13 职场文书
信息技术国培研修日志
2015/11/13 职场文书
《我是什么》教学反思
2016/02/16 职场文书
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
PostgreSQL13基于流复制搭建后备服务器的方法
2022/01/18 PostgreSQL