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 生成不重复的随机数的代码
May 15 Python
python实现的简单抽奖系统实例
May 22 Python
深入理解python函数递归和生成器
Jun 06 Python
python生成lmdb格式的文件实例
Nov 08 Python
对web.py设置favicon.ico的方法详解
Dec 04 Python
对python中的argv和argc使用详解
Dec 15 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
如何通过50行Python代码获取公众号全部文章
Jul 12 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
Django+Celery实现动态配置定时任务的方法示例
May 26 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作为Shell脚本语言使用
2006/10/09 PHP
浅谈PHP eval()函数定义和用法
2016/06/21 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
jquery选择器使用详解
2014/04/08 Javascript
js动态删除div元素基本思路及实现代码
2014/05/08 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
PHP 数组current和next用法分享
2015/03/05 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
对Pandas MultiIndex(多重索引)详解
2018/11/16 Python
python之cv2与图像的载入、显示和保存实例
2018/12/05 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
LocalStorage记住用户和密码功能
2017/07/24 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
Radley英国官网:英国莱德利小狗包
2019/03/21 全球购物
澳大利亚顶级美发和美容贸易超市:glamaCo
2020/01/19 全球购物
毕业生教师求职信
2013/10/20 职场文书
集团公司人力资源部岗位职责
2014/01/03 职场文书
新春联欢会主持词
2014/03/24 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
大四毕业生自荐书
2014/07/05 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
公司2014年度工作总结
2014/12/10 职场文书
护士年终考核评语
2014/12/31 职场文书
2015年政府采购工作总结
2015/05/21 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
《女娲补天》教学反思
2016/02/20 职场文书
高端收音机+蓝牙音箱,JBL TUNER FM带收音蓝牙音箱评测
2021/04/24 无线电
MySQL 数据恢复的多种方法汇总
2021/06/21 MySQL