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学生成绩管理系统简洁版
Apr 05 Python
python 连接各类主流数据库的实例代码
Jan 30 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
Python 对输入的数字进行排序的方法
Jun 23 Python
在python中pandas的series合并方法
Nov 12 Python
在python中实现将一张图片剪切成四份的方法
Dec 05 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
python3.8与pyinstaller冲突问题的快速解决方法
Jan 16 Python
Django form表单与请求的生命周期步骤详解
Jun 07 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
Python __slots__的使用方法
Nov 15 Python
使用Python获取爱奇艺电视剧弹幕数据的示例代码
Jan 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 pack与unpack 摸板字符字符含义
2009/10/29 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
php中addslashes函数与sql防注入
2014/11/17 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
2017/06/11 PHP
一个高效的JavaScript压缩工具下载集合
2007/03/06 Javascript
讨论html与javascript在浏览器中的加载顺序问题
2013/11/27 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
javascript实现动态标签云
2015/10/16 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
Javascript 正则表达式校验数字的简单实例
2016/11/02 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
JS实现复选框的全选和批量删除功能
2017/04/05 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
js绘制一条直线并旋转45度
2020/08/21 Javascript
javascript this指向相关问题及改变方法
2020/11/19 Javascript
python实现文件路径和url相互转换的方法
2015/07/06 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
在python中pandas读文件,有中文字符的方法
2018/12/12 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
Python3爬虫发送请求的知识点实例
2020/07/30 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
Python通过递归函数输出嵌套列表元素
2020/10/15 Python
市场开发与营销专业求职信
2013/12/31 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
保险公司晨会主持词
2014/03/22 职场文书
典型事迹材料范文
2014/12/29 职场文书
小学老师对学生的评语
2014/12/29 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
小学副班长竞选稿
2015/11/21 职场文书
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers