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生成器的使用方法
Nov 21 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
Sep 28 Python
Python实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
Python中操作MySQL入门实例
Feb 08 Python
用Python计算三角函数之acos()方法的使用
May 15 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
Python反射的用法实例分析
Feb 11 Python
浅谈解除装饰器作用(python3新增)
Oct 15 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
python print出共轭复数的方法详解
Jun 25 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 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开发模式(简写版)
2007/03/15 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP反射API示例分享
2016/10/08 PHP
PHP利用超级全局变量$_POST来接收表单数据的实例
2016/11/05 PHP
PHP学习记录之数组函数
2018/06/01 PHP
java解析json方法总结
2019/05/16 PHP
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
js读取并解析JSON类型数据的方法
2015/11/14 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
js点击任意区域弹出层消失实现代码
2016/12/27 Javascript
简单实现bootstrap导航效果
2017/02/07 Javascript
vue router下的html5 history在iis服务器上的设置方法
2017/10/18 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
JS实现的Object数组去重功能示例【数组成员为Object对象】
2019/02/01 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
JavaScript内置对象之Array的使用小结
2020/05/12 Javascript
vue-路由精讲 二级路由和三级路由的作用
2020/08/06 Javascript
Python用for循环实现九九乘法表
2018/05/31 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
使用 Python 清理收藏夹里已失效的网站
2019/12/03 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
澳大利亚首屈一指的在线购物目的地:Kogan.com
2017/02/02 全球购物
市级文明单位申报材料
2014/05/07 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
化验室岗位职责
2015/02/14 职场文书
2015年度物业公司工作总结
2015/04/27 职场文书
我的中国梦心得体会范文
2016/01/05 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis