Python算法:【螺旋】矩阵

矩阵的螺旋排列 Python实现 矩阵的螺旋排列   描述 以二维列表方式给定一个M*N的矩阵(M行,N列),以螺旋的顺序返回矩阵所有元素,并按照列表形式输出,各元素以逗号为间隔。 例如,给定矩阵如下: [  [ 1,  2,  3 ],  [ 4,  5,  6 ],  [ 7,  8,  9 ] ] 那么按照螺旋形状应该返回 [1,2,3,6,9,8,7,4, 阅读详情

如题

实现一个函数,输入正整数n(n=4),输出如下矩阵:
[ 10, 11, 12, 1 ]
[ 9 , 16, 13, 2 ]
[ 8 , 15, 14, 3 ]
[ 7 , 6 , 5 , 4 ]

算法实现

import numpy as np
def whirlpool_matrix(n=10):
    mat = np.array([[0]*n]*n)
    value = 0
    i, j = -1, n - 1
    for offset in range(n, 0, -1):
        value += 1
        i += 1
        mat[i][j] = value
    for m in range(n - 1, 0, -1):
        for offset in range(m, 0, -1):
            value += 1
            j += (-1) ** (m + n)
            mat[i][j] = value
        for offset in range(m, 0, -1):
            value += 1
            i += (-1) ** (m + n)
            mat[i][j] = value
    return mat

结果展示1:热力图

matrix = whirlpool_matrix()
# 可视化
from seaborn import heatmap
from matplotlib import pyplot
heatmap(matrix, center=100, fmt='d', annot=True)
pyplot.show()

结果展示2:等高线图

# 创建数据
import numpy as np
n = 9
a = np.linspace(0, n, n)
x, y = np.meshgrid(a, a)
matrix = whirlpool_matrix(n)
# 可视化
import matplotlib.pyplot as mp
cntr = mp.contour(x, y, matrix, colors='black')  # 绘制等高线
mp.contourf(x, y, matrix, cmap='jet')  # 填充颜色
mp.clabel(cntr, fmt='%.1f')  # 显示各等高线的数据标签
mp.colorbar()  # 颜色条
mp.show()  # 展示窗口

结果展示3:三维曲面图

# 创建数据
import numpy as np
n = 9
a = np.linspace(0, n, n)
x, y = np.meshgrid(a, a)
matrix = whirlpool_matrix(n)
# 可视化
import matplotlib.pyplot as mp
from mpl_toolkits import mplot3d
fig = mp.figure('3D')  # 创建figure对象
ax = mplot3d.Axes3D(fig)  # 获取3维坐标轴
ax.plot_surface(x, y, matrix, rstride=1, cstride=1, cmap='jet')  # 绘制3d图
mp.show()  # 展示窗口

这里写图片描述

设置n=20

这里写图片描述

设置n=100

这里写图片描述

Python:实现矩阵螺旋打印算法(附完整源码) 阅读详情

相关推荐

螺旋蛇形矩阵

自己写的一个小程序,输入一个整数N,输出N阶逆时针蛇形矩阵

python实现螺旋矩阵

import numpy # 使用递归解决 def helixMatrix(matrix,x_cur,y_cur,number,n): if n==0: print(matrix) return 0 if n==1: matrix[x_cur][y_cur]=number print(matrix)

amazingbo的博客 4786

从模型车到真实路口:基于YOLOv5-Lite与SORT的轻量化车流量检测系统实战

本文详细阐述了如何将基于YOLOv5-Lite与SORT的轻量化车流量检测系统从毕业设计原型部署到真实路口。文章聚焦于解决在嵌入式平台(如树莓派)上实现实时、稳定检测的工程挑战,涵盖数据采集、模型微调、系统集成及动态信号灯策略,为智能交通灯系统提供了实用的轻量化解决方案。

weixin_29179311的博客 127

Python-打印螺旋矩阵

问题描述 输入N, 打印 N*N 螺旋矩阵 比如 N = 3,打印: 1 2 3 8 9 4 7 6 5N = 4,打印: 1 2 3 4 12 13 14 5 11 16 15 6 10 9 8 7 思路 常规法是不断的对数据边界进行判断会很复杂,不妨考虑通过递归的解决每一层的数字。 代码 n = int(raw_input('>')) #初始化数组 arr =

NCU的博客 1万+

ElasticSearch集群搭建

docker安装es集群

weixin_46562226的博客 2026

STM32单片机语音提示盲人拐杖整点报时夜间警示超声波测距

STM32单片机语音提示盲人拐杖整点报时夜间警示超声波测距 关键词:语音提示盲人拐杖 整点报时 超声波测距拐杖

LS840233684的博客 2047

Python实现螺旋矩阵:给定一个m*n要素的矩阵。按照螺旋顺序,返回该矩阵的所有要素。

#例如[[1,2,3],[4,5,6],[7,8,9]] 应该返回[1,2,3,6,9,8,7,4,5] # demo=[[1,2,3],[4,5,6],[7,8,9]] arr=[[1,2,3],[4,5,6],[7,8,9]] # arr=[[1,2,3,4],[5,6,7,8],[9,10,11,12]] # arr=[[1,2,3,4],[5,6,7,8,],[9,10,11,12],...

weixin_41566686的博客 2713

[小技巧] 如何复制知乎电子书中的文字和图片

文章目录一、背景二、复制文字1.最简单的方法(适合短小文字)2. 进阶方法(适合大段文字)三、复制图片四、注意事项 一、背景 有时候希望从书中摘录一部分文字作为笔记,但是知乎电子书阅读时候是禁止copy的,要么手打,要么OCR,给学习带来了一些不便。 审查元素后发现,知乎电子书是把文字分成一段一段的,试图F12直接copy不太方便。 本问将以谷歌Chrome浏览器为例,给出复制小技巧。 二、复制文字 1.最简单的方法(适合短小文字) 选中你需要的文字,左键单击不放,直接拖到地址栏。 然后可以从地址栏中

江南蜡笔小新 9251

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

Python实现螺旋矩阵的填充算法示例本文实例讲述了Python实现螺旋矩阵的填充算法。分享给大家供大家参考,具体如下:afanty的分析:关于矩阵(二维数组)填充问题自己动手推推,分析下两个下表的移动规律就很容易咯。对于螺旋矩阵,不管它是什么鬼,反正就是依次向右、向下、向右、向上移动。向右移动:横坐标不变,纵坐标加1向下移动:纵坐标不变,横坐标加1向右移动:横坐标不变,纵坐标减1向上移动:纵坐标...

jiahaowanhao的博客 1250

从PWM到精准电流:双光耦与LM317构建的4-20mA隔离输出方案

本文详细介绍了基于双光耦与LM317的4-20mA隔离输出方案,适用于工业自动化中的PWM信号转换。该方案通过电气隔离和精准电流调节,显著提升抗干扰能力和信号传输精度,同时降低成本60%。文章还分享了电路设计、参数计算及调试经验,为工程师提供实用参考。

weixin_32006655的博客 284

课题申报书成功率提升85%!借助大模型AI精准选题、搭综述框架及提炼创新点(附实操AI提示词)

写一份高质量的课题申报书往往面临许多困难,对很多同仁来说,难就难在:选题既要新又要能落地,文献综述要结构清晰还得有观点,研究目标要写得有逻辑还不能夸大,创新点必须得新。而且就算你有思路,也卡在怎么组织语言,怎么压缩字数上。现在我们用ChatGPT等AI工具,可以帮我们从“选题策划 → 综述撰写 → 目标拆解 → 创新提炼 → 团队结构”实现申报工作的全流程,我们要做的就是设计好提示词和收集相关资料。这篇文章将会从申报工作的六个核心模块出发,并给出参考AI提示词,帮你快速提升课题申报效率。

智能AI让学术科研更容易 909

LeetCode题目54:螺旋矩阵【python4种算法实现】

螺旋矩阵 4中算法 包括实际应用案例

10年数据\经营分析经验,现任大厂数据分析负责人 1863

60、磁悬浮主动隔振系统的LQR控制研究

本研究针对磁悬浮主动隔振系统,提出了一种结合ANN建模、LQR控制与MPGA优化的综合控制方案。通过建立系统的动力学与状态空间模型,利用混合训练算法的ANN精确描述MSVI的非线性和滞后特性,并设计基于最小力传递率的LQR控制器。为优化LQR的Q和R矩阵,引入多群体遗传算法(MPGA),有效克服传统GA的早熟收敛问题,提升搜索效率与控制性能。仿真结果表明,在单频、扫频、随机及冲击激励下,该方法显著降低传递力幅值,隔振效果远优于被动系统。研究验证了所提方法的有效性,为磁悬浮隔振技术的实际应用奠定了基础,并展望

linux6sysadmin的博客 127

矩阵横向输出_Python3算法之八:矩阵螺旋遍历

关注微信公众号“酸痛鱼”,获得更多最新最全的文章。 本文中所涉及的代码,在未特殊声明的情况下,都是基于Python3程序设计语言编写的。 建议您在PC浏览器中阅读本文,以获得更好的阅读体验。 如果您未掌握知识提要中的内容,建议您先掌握这些内容之后再阅读本文。知识提要0、列表乘法:list_obj * n1、列表生成:[exp for v in seq_obj]0问题描述 实...

weixin_33420201的博客 597

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【python算法打卡Day02】0815:LeetCode 209 长度最小的子数组、59 螺旋矩阵

算法练习

huayaomi2370的博客 1409

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python中实现贪吃蛇矩阵(螺旋矩阵)

Python中实现贪吃蛇矩阵(螺旋矩阵) 废话不多说,直接上代码 def snake(n): arr = [[0] * n for i in range(n)] flag = 1 for k in range(int(n/2)): for up in range(k, n-1-k): arr[k][up] = flag ...

weixin_44528947的博客 998

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

螺旋矩阵 python

螺旋矩阵是指一个呈螺旋状的矩阵

shayenudong的博客 860

python算法打卡:209. 长度最小的子数组、59.螺旋矩阵

时间复杂度O(n^2)

Qiaoshurui的博客 301

97.螺旋矩阵II

文章目录一、题目描述二、解题思路三、代码演示 一、题目描述 给你一个正整数 n ,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 二、解题思路 先参考我的96_螺旋矩阵方案一的代码,直接改改就可以了。 三、代码演示 方案一:直接模拟 class Solution { public int[][] generateMatrix(int n) { //使用2*4的数组:往右,往下,往左,往上,0表示不变,1是加1,-1是

Quiet_han的博客 310

4数组-简单模拟-螺旋矩阵 II/ 顺时针打印矩阵

59. 螺旋矩阵 II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n = 3 输出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 输入:n = 1 输出:[[1]] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/spiral-matrix-ii 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 左闭右

sueong的博客 191

【LeetCode 54. 螺旋矩阵】

LeetCode 54. 螺旋矩阵 题目描述 解题思路 遍历。 参考 labuladong的算法小抄. class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> res = new ArrayList<>(); int row = matrix.length, col = matrix[0].length; /

QSilenceH的博客 468

BM98 螺旋矩阵(python)

python实现:给出一个矩阵,按顺时针螺旋顺序输出

的博客 984

Python:模拟(包含例题:饮料换购 图像模糊 螺旋矩阵)

注意1.读懂题:理清楚题目流程2.代码和步骤一一对应:变量名,函数名,函数功能3.提取重复的部分,写成对应的函数(子模块)4.按顺序写,分块调试。

menge2333的博客 922

力扣热门算法题 59. 螺旋矩阵 II,60. 排列序列,61. 旋转链表

59. 螺旋矩阵 II,60. 排列序列,61. 旋转链表,每题做详细思路梳理,配套Python&Java双语代码, 2024.03.21可通过leetcode所有测试用例。

引用原创内容标明出处即可 1275

代码随想录算法训练营第二天| 977. 有序数组的平方、209. 长度最小的子数组、 59. 螺旋矩阵II

基本思路就是平方的同时排序,采用归并排序的并操作来排序,因为已经“归好了”,就是拆成两个数组,一个是负数的有序数组,一个是正数的有序数组,所以时间复杂度不是以往归并排序的O(nlogn),而是O(n)。

hello_brucebat的博客 259
上一篇: Python 迷宫算法
下一篇: Python基础算法:排序、查找、二叉树
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值