题主最近在学数据结构

内螺旋矩阵

如图所示
就是一种螺旋的形状
首先这个出现的矩阵一定是奇数来表现,然后输入你想输出的矩阵行数,必须转换为奇数
然后通过生成一个包含多个列表的列表来存储数据
生成坐标系,游标i通过判断坐标所属的区域来判断坐标应该进行的变化
#内螺旋矩阵
# def interSpiralMatrix(size):
#     if (size % 2 != 1):#size必须是奇数
#         size += 1
#     spiralMatrix = [([0] * size) for i in range(size)]#生成矩阵
#     x, y, side = int(size / 2), int(size / 2), size - 1
#     for i in range(1, size ** 2 + 1):#坐标的变化是 x++ , y ++, x--, y--,,,i 表示所有的值
#         spiralMatrix[y][x] = i
#         if (y <= -x + side and y <= x):#划分四个区域,然后就是通过直线来分开
#             x += 1
#         elif(-x + side < y and y < x):
#             y += 1
#         elif(x<=y and -x + side < y):
#             x -= 1
#         elif(x<y and y<=-x+side):
#             y -= 1
#     for matrix in spiralMatrix:
#         print "\t".join(map(lambda x : str(x), matrix))
# interSpiralMatrix(5)

双螺旋矩阵

然后也是转换为奇数
然后生成列表保存数字
因为是双螺旋矩阵,所以赋值从来两个螺旋是同时进行
声明step变量来判断这个游标所进行的方向操作,变量i表示这个变量所进行的步长
#双螺旋矩阵
# def pairterSpiralMatrix(size):
#     if (size % 2 != 1):
#         size += 1
#     arr = [([0] * size) for i in range(size)]#生成矩阵
#     max = (size * size + 1) / 2#矩阵最大值
#     x, y = size / 2, size / 2
#     arr[y][x] = 1#中心点
#     y -= 1#向上移动一步
#     arr[y][x] = arr[size - 1 - y][size - 1 - x] = 2
#     num, step = 2, 1#表示每次存取的数字
#     while num < max:#双螺旋矩阵赋值动作同时进行,step不是表示程序赋值的次数,而是表示程序赋值的方向,
#         if step % 2 == 1:#奇数步  右下,左上
#             for i in range(step * 2 - 1):
#                 num += 1
#                 x += 1#每次只是x增加1,
#                 arr[y][x] = arr[size - 1 - y][size - 1 - x] = num#向右,对称赋值
#             for i in range(step * 2 + 1):#i表示次数,之所以每次会出现i每次相隔为2,向右的步数加上2等于向下的步数,
#                 num += 1
#                 y += 1#每次增加y,增加i次
#                 arr[y][x] = arr[size - 1 - y][size - 1 - x] = num#向下
#                 if (num == max):
#                     break
#             step += 1
#         else:#偶数步。向左的步数加上2等于向上的步数,左上,右下
#             for i in range(step * 2 - 1):
#                 num += 1
#                 x -= 1
#                 arr[y][x] = arr[size - 1 - y][size - 1 - x] = num#向左
#             for i in range(step * 2 + 1):
#                 num += 1
#                 y -= 1
#                 arr[y][x] = arr[size - 1 - y][size - 1 - x] = num#向上,对称赋值
#                 if (num == max):#最后跳出循环
#                     break
#             step += 1#步子一直增加
#     for matrix in arr:
#         print "\t".join(map(lambda x: str(x), matrix))
# pairterSpiralMatrix(8)

内螺旋矩阵和双螺旋矩阵(python)相关推荐

  1. 混淆矩阵是什么?Python多分类的混淆矩阵计算及可视化(包含原始混淆矩阵及归一化的混淆矩阵):基于skelarn框架iris数据集

    混淆矩阵是什么?Python多分类的混淆矩阵计算及可视化(包含原始混淆矩阵及归一化的混淆矩阵):基于skelarn框架iris数据集 目录

  2. python进行矩阵计算公式_纯python进行矩阵的相乘运算的方法示例

    本文介绍了纯python进行矩阵的相乘运算的方法示例,分享给大家,具体如下: def matrixMultiply(A, B): # 获取A的行数和列数 A_row, A_col = shape(A) ...

  3. python计算相关矩阵_Numpy使用大全(python矩阵相关运算大全)-Python数据分析基础2...

    //2019.07.10 python数据分析基础--numpy(数据结构基础) import numpy as np: 1.python数据分析主要的功能实现模块包含以下六个方面: (1)numpy ...

  4. python实现矩阵叉乘_矩阵乘法的纯Python实现 | 离开Python库!!

    点击关注我哦 一篇文章带你了解矩阵乘法的纯Python实现 在<这篇文章>中,我们有简单提到"矩阵乘法"的相关知识,如果你不记得了,可以复习一下这张图片. 想起来了没? ...

  5. python矩阵中插入矩阵_Python | 矩阵的痕迹

    python矩阵中插入矩阵 The sum of diagonal elements of a matrix is commonly known as the trace of the matrix. ...

  6. python numpy常用操作、Numpy 多维数组、矩阵相乘、矩阵乘以向量

    python numpy常用操作 Numpy基本操作 # 导入numpy import numpy as np # 生成numpy数组 x = np.array([1.0, 2.0, 3.0]) pr ...

  7. python连乘函数_动态规划之矩阵连乘问题Python实现方法

    本文实例讲述了动态规划之矩阵连乘问题Python实现方法.分享给大家供大家参考,具体如下: 给定n个矩阵{A1,A2,-,An},其中Ai与Ai+1是可乘的,i=1,2 ,-,n-1.如何确定计算矩阵 ...

  8. 干货来袭!!!3天0基础Python实战项目快速学会人工智能必学数学基础全套(含源码)(第1天)线性代数篇:矩阵、向量及python实战

    第1天:线性代数篇:矩阵.向量.实战编程 第2天:微积分篇:极限与导数.梯度下降.积分.实战编程 第3天:概率分析篇:条件概率与全概率.贝叶斯公式.实战项目 目录 前言 一.矩阵在AI中的应用 二.矩 ...

  9. Python矩阵计算类:计算矩阵加和、矩阵乘积、矩阵转置、矩阵行列式值、伴随矩阵和逆矩阵

    最近在Python程序设计中遇到一道设计矩阵计算类的题目,原题目要求计算矩阵加和和矩阵乘积,而我出于设计和挑战自己的目的,为自己增加难度,因此设计出矩阵计算类,不仅可以求出矩阵加和和矩阵乘积,还能计算 ...

最新文章

  1. 解题报告:P5960 【模板】差分约束算法(及常用技巧)
  2. 基于ESP32智能车竞赛比赛系统硬件初步调试-5-6
  3. 【翻译】HTML5基于浏览器的媒体播放器:可以离线播放你的mp3文件
  4. python表格对齐_python str.format 中文对齐的细节问题,
  5. 常用的数据统计Sql 总结
  6. missing legacy device support
  7. C#LeetCode刷题之#374-猜数字大小(Guess Number Higher or Lower)
  8. 【Kafka】kafka AdminClient 闲时关闭连接
  9. 彻底理解Python切片
  10. C++中的struct与class继承方式
  11. 51单片机实现简单计算器
  12. 如何撰写专利说明书摘要?
  13. Java前后端分离项目跨域问题
  14. 解决strongOD与olly advanced插件冲突问题
  15. 看盘ABC 欧奈尔:CANSLIM法则
  16. 栈 括号匹配问题(C语言)
  17. 《精力管理》读书笔记
  18. 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组
  19. AFL(afl-qemu mode)的安装到放弃
  20. HT1623驱动LCD段码屏程序

热门文章

  1. 设计模式-工厂模式-php
  2. Python 反爬虫与反反爬虫
  3. Meterprete端口转发
  4. U盘安装CentOS 7,简单有效
  5. 【收藏】5个免费可商业的图片素材类网站推荐
  6. python脚本配置shebang行
  7. 天津大学902软件工程2019年考研真题回忆
  8. 2016net跟php哪个好,.NET_厚积薄发,拥抱.NET 2016,初识 .NET 2016 .NET 2016 概览 .NET - phpStudy...
  9. springcloud微服务简单实例(服务发现与注册)
  10. LeetCode 242. 有效的字母异位词【哈希表】