Python实现螺旋矩阵的填充算法示例


Posted in Python onDecember 28, 2017

本文实例讲述了Python实现螺旋矩阵的填充算法。分享给大家供大家参考,具体如下:

afanty的分析:

关于矩阵(二维数组)填充问题自己动手推推,分析下两个下表的移动规律就很容易咯。

对于螺旋矩阵,不管它是什么鬼,反正就是依次向右、向下、向右、向上移动。

向右移动:横坐标不变,纵坐标加1
向下移动:纵坐标不变,横坐标加1
向右移动:横坐标不变,纵坐标减1
向上移动:纵坐标不变,横坐标减1

代码实现:

#coding=utf-8
import numpy
'''''
Author: afanty
Date:  2016/6/23
'''
def helixMatrix(n):
  '''''实现n维螺旋矩阵的填充
  :param n:维数
  :return:螺旋矩阵
  '''
  if not isinstance(n, int) or n <= 0:
    raise ValueError('请输入合适的维数')
  matrix = numpy.zeros((n, n))
  left_top = 0
  right_buttom = n - 1
  number = 1
  while left_top < right_buttom:
    # 向右移动,横坐标不变,纵坐标+1,number+1
    i = left_top
    while i < right_buttom:
      matrix[left_top][i] = number
      i += 1
      number += 1
    # while
    # 向下移动,纵坐标不变,横坐标+1,number+1
    i = left_top
    while i < right_buttom:
      matrix[i][right_buttom] = number
      i += 1
      number += 1
    #while
    # 向左移动,横坐标不变,纵坐标-1,number+1
    i = right_buttom
    while i > left_top:
      matrix[right_buttom][i] = number
      i -= 1
      number += 1
    # while
    # 向上移动,纵坐标不变,横坐标-1,number+1
    i = right_buttom
    while i > left_top:
      matrix[i][left_top] = number
      i -= 1
      number += 1
    # while
    left_top += 1
    right_buttom -= 1
  # while
  if n % 2 != 0:
    matrix[n / 2][n / 2] = n * n
  return matrix
# end
print("三水点靠木测试结果:")
print helixMatrix(5)

运行结果:

Python实现螺旋矩阵的填充算法示例

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

Python 相关文章推荐
Python实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
python中文乱码不着急,先看懂字节和字符
Dec 20 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
Python中elasticsearch插入和更新数据的实现方法
Apr 01 Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 Python
Django 实现admin后台显示图片缩略图的例子
Jul 28 Python
Python 格式化打印json数据方法(展开状态)
Feb 27 Python
python画环形图的方法
Mar 25 Python
python3美化表格数据输出结果的实现代码
Apr 14 Python
解决numpy和torch数据类型转化的问题
May 23 Python
python代码实现扫码关注公众号登录的实战
Nov 01 Python
wxPython的安装图文教程(Windows)
Dec 28 #Python
Python制作豆瓣图片的爬虫
Dec 28 #Python
浅谈Python使用Bottle来提供一个简单的web服务
Dec 27 #Python
python编程实现12306的一个小爬虫实例
Dec 27 #Python
python导出chrome书签到markdown文件的实例代码
Dec 27 #Python
Python类的继承和多态代码详解
Dec 27 #Python
快速查询Python文档方法分享
Dec 27 #Python
You might like
新的一年,新的期待:DC在2020年的四部动画电影
2020/01/01 欧美动漫
Discuz! Passport 通行证整合
2008/03/27 PHP
PHP在字符串中查找指定字符串并删除的代码
2008/10/02 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
JQuery与Ajax常用代码实现对比
2009/10/03 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
巧用Python装饰器 免去调用父类构造函数的麻烦
2012/05/18 Python
分析python服务器拒绝服务攻击代码
2014/01/16 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Python爬取网易云音乐上评论火爆的歌曲
2017/01/19 Python
windows环境下tensorflow安装过程详解
2018/03/30 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
使用NumPy读取MNIST数据的实现代码示例
2019/11/20 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
美国男士西装打折店:Jos. A. Bank
2017/11/13 全球购物
一家专门经营包包的英国网站:MyBag
2019/09/08 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
企业安全生产演讲稿
2014/05/09 职场文书
计划生育宣传标语
2014/06/21 职场文书
应届生求职自荐信
2014/07/04 职场文书
维稳工作情况汇报
2014/10/27 职场文书
2014年护士长工作总结
2014/11/11 职场文书
行政答辩状范文
2015/05/21 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
Python爬虫实战之爬取携程评论
2021/06/02 Python
python中Matplotlib绘制直线的实例代码
2021/07/04 Python