九宫格的填数我用的是比较常规的方法:根据九宫算术填数规律,通过程序方式完成。填数规律:1)最大数填在中间一行、最后一列;2)行+1,列+1,如果新位置没有填数则填下一个数;3)否则,
退回原位置,执行列-1操作,然后填下一个数。

这里我使用python中numpy库的np.zeros((n,n))方法,创建了一个n*n阶的矩阵以便于填数和输出。

​
#九宫算术
import numpy as np
n = int(input())
a=np.zeros((n,n))
r,c = n//2,n-1        #行,列
for i in range(n*n,0,-1):a[r][c] = i       #先填最大的数r = (r+1)%n       #取模(防止超出范围)c = (c+1)%nif a[r][c] != 0:  #填数重复r = (r-1)%n   #退回原位c = (c-2)%n   #执行列-1
print(a)

输出:

3
[[6. 7. 2.]
 [1. 5. 9.]
 [8. 3. 4.]]

5
[[15. 16. 22.  3.  9.]
 [ 8. 14. 20. 21.  2.]
 [ 1.  7. 13. 19. 25.]
 [24.  5.  6. 12. 18.]
 [17. 23.  4. 10. 11.]]

......

代码中的巧妙之处就是取模的操作了,我刚开始写九宫格这题时看了许多别人的代码方法,大都需要判断填数是上(下)还是左(右)超出范围,并且需要多次更新位置,使代码看起来很复杂。但在矩阵中取模就可以巧妙的减少这些判断。

本人初学python有不足之处希望能评论留言予以指出,望一起进步!!!

python九宫格矩阵排数相关推荐

  1. 【每日DP】day 10、P1005 矩阵取数游戏【区间DP+高精(python)】难度⭐⭐⭐★

    P1005 矩阵取数游戏 输入 2 3 1 2 3 3 4 2 输出 82 说明/提示 NOIP 2007 提高第三题. 数据范围: 60%60\%60% 的数据满足:1≤n,m≤301\le n,m ...

  2. python输出矩阵的行数_python查看矩阵的行列号以及维数方式

    print(X.shape):查看矩阵的行列号 print(len(X)):查看矩阵的行数 print(X.ndim):查看矩阵的维数 1 查看矩阵的行列号 2 查看矩阵的行数 3 查看矩阵的维数 补 ...

  3. python矩阵行数_python查看矩阵的行列号以及维数方式

    print(X.shape):查看矩阵的行列号 print(len(X)):查看矩阵的行数 print(X.ndim):查看矩阵的维数 1 查看矩阵的行列号 2 查看矩阵的行数 3 查看矩阵的维数 补 ...

  4. Python输出矩阵的维度(行和列数)

    目录 使用numpy中的shape()函数输出矩阵的行和列 一.shape()函数获取矩阵的行数和列数 二.len()函数获取矩阵的行数 三.使用x.ndim函数可以输出矩阵维数 使用numpy中的s ...

  5. python给矩阵赋值_解决Python二维数组赋值问题

    解决Python二维数组赋值问题 当我们采用s=[[0]*3]*2初始化一个数组,然后对s[0][0]进行赋值,改变的是第一列所有的值.因为用s = [[0]*3]*2 初始化数组,他表示的是指向这个 ...

  6. python矩阵转置_关于python中矩阵的实现和矩阵的转置

    python中矩阵的实现是靠序列,,, 序列有很多形式, 其实矩阵是现实生活中的东西,把现实生活中的结构转换到程序中. 就需要有个实现的方法,而这种路径是多种多样的. 下面给出一个把矩阵转换成pyth ...

  7. python实现快排算法(quicksort)

    python实现快排算法(quicksort) 快速排序是对冒泡排序的一种改进.它的基本思想是:通过一次排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后 ...

  8. python中矩阵的表示方法_关于Python表示矩阵的方法详解

    这篇文章主要介绍了Python表示矩阵的方法,结合具体实例形式分析了Python表示矩阵的方法与相关操作注意事项,需要的朋友可以参考下 本文实例讲述了Python表示矩阵的方法.分享给大家供大家参考, ...

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

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

  10. LeetCode Algorithm 386. 字典序排数

    386. 字典序排数 Ideas 字典序排序嘛,先生成一个数字数组,然后转成字符串类型,再排一下序,之后再转回整数数组,return就可以了. Code Python from typing impo ...

最新文章

  1. Java中JMX管理器的作用,项目中有什么具体使用?
  2. [摘抄]一些软件设计的原则
  3. OSPF的LSA类型~
  4. pip 安装模块报错解决
  5. android sdk是灰的,Android Studio 2.3 sdk管理器标签灰显
  6. 免费盈利模式是骗人的吗?
  7. 不存在的泳池 DFS
  8. Linux下android开发环境 遇到的问题
  9. 高手过招,精彩纷呈:PostgreSQL数据库人才与业务生态应用论坛圆满落幕
  10. 恩施州推进大数据监督检查工作规范化常态化
  11. discuz php单页,从PHP的模板引擎看Discuz!模板机制
  12. 计算机任务管理器中的进程,Win7任务管理器中哪些进程可以关闭?
  13. 动物网页html5设置思想,网站设计思想
  14. Java实验报告四,研究生薪资管理,创建一个抽象交通工具Vehicle类,经理与员工工资等实验
  15. Flash Builder 4.6.1的安装与破解
  16. 淘宝网店商品哪个时间段是最佳上架时间?
  17. 如何替换json对象中的key
  18. 博士第六年还没有发Paper是一种什么样的体验?
  19. Vuex 4源码学习笔记 - 通过Vuex源码学习E2E测试(十一)
  20. [NOI 2008]假面舞会(综合图论)

热门文章

  1. 一元四次方程c语言程序编写,一元高次方程数值解法C程序实现探讨..doc
  2. QQ浏览器 不支持html5,浏览器常见问题_浏览器高级功能_浏览器在线帮助-QQ浏览器官网...
  3. Coupled Layer-wise Graph Convolution for Transportation Demand Prediction
  4. 一台计算机连接两个投影,一台电脑两个投影仪要如何连接
  5. 2021年美国大学生数学建模竞赛助力
  6. linux 下不错的html编辑器bluefish_php_sir_新浪博客
  7. 给GridLayout设置字视图的大小和视图之间的距离
  8. 37页pdf,埃默里大学最新「大数据时代事件预测」综述,ACM顶级期刊上发表
  9. Lowest Common Ancestor
  10. 南京毕业生租房补贴发票开具地点一览表