相信大家都做过九宫格的游戏,规则是要求填数字1-9在九个方格内,使横竖斜相加和相等。只填九个那可能有些简单,但是填25个,填49个,81个等奇数个那,这时候就要求我们去找其中的规律。找到规律又要如何用代码实现?

希望大家看代码之前,先来看下这个口诀:

首居上行正中央,依次斜向右上方,上出框时往下写,右出框时左边放,排重退回下格填,右上排重一个样。

释义:1要放在第一行的正中央,每次按依次向上的格式去填值,如果超出上边框就把它竖直往下移到最后一行,如果超出右边框就把它横着移动到最左边,在移动过程中如果要移动的地方已经存在值,就把这个放到前一个数字的下面,如果上边框和右边框都超过啦,就和排重一样,也把这个放到前一个数字的下面。过程如下图所示

代码如下:

#!/usr/bin/env python3

#-*- coding:utf-8 -*-

num = int(input('请输入一个奇数:'))

# 定义一个长为num的列表

high = [[0] * num ]

# 先定义一个num*num的一个列表,之后在往里面赋值

for i in range(num-1):

high += [[0]*num]

n = 1

# 先确定第一行中间值为1

high[0][num//2] = n

x = 0

y = num//2

# 依次向high列表赋值从2开始

for j in range(1,num*num):

# x表示第几行,y表示第几列,j表示x,y坐标的值

j = j + 1

x = x - 1

y = y + 1

# 判断符合哪几种可能性

if y > (num - 1) and x < 0 :

x = x + 2

y = y - 1

high[x][y]=j

elif x < 0 :

x = num - 1

high[x][y]=j

elif y > num-1 :

y = 0

high[x][y]=j

else:

if high[x][y] == 0 :

high[x][y]=j

elif high[x][y] != 0 :

x = x + 2

y = y - 1

high[x][y]=j

# 依次把high列表中值打印出来

for a in range(num):

for b in range(num):

# rjust表示输出01,02,03等这种格式,可看我上篇博文介绍

print( str(high[a][b]).rjust(2,'0'),end=' ')

print()

思路:

主要还是理解最上面的那段口诀,口诀理解啦,代码也就懂啦

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

python实现矩阵横竖斜的和相等_python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等...相关推荐

  1. python实现矩阵横竖斜的和相等_python打印9宫格,25宫格等奇数格,且横竖斜相加和相等...

    代码如下: #!/usr/bin/env python3 #-*- coding:utf-8 -*- num = int(input('请输入一个奇数:')) # 定义一个长为num的列表 high ...

  2. python格式输出占四列左对齐_python – 打印字符串左对齐,固定宽度和后缀

    您不能更改"".format(),因为它是内置的,但如果可以为方法提供字符串和参数: print(kf.format("{:t{}} {}", key, ':' ...

  3. Python混淆矩阵可视化:plt.colorbar函数自定义颜色条的数值标签、配置不同情况下颜色条的数值范围以及数据类型(整型、浮点型)

    Python混淆矩阵可视化:plt.colorbar函数自定义颜色条的数值标签.配置不同情况下颜色条的数值范围以及数据类型(整型.浮点型) 目录

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

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

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

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

  6. python创建矩阵_在Python中创建矩阵的Python程序

    python创建矩阵 There is no specific data type in Python to create a matrix, we can use list of list to c ...

  7. python把矩阵堆叠成大矩阵_python numpy 矩阵堆叠实例

    在实际操作中,遇到了矩阵堆叠的操作,本来想着自己写一个函数,后来想,应该有库函数,于是一阵找寻 import numpy as np a = np.array([1,2,3]) b = np.arra ...

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

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

  9. python创建矩阵_Python创建对称矩阵的方法示例【基于numpy模块】

    本文实例讲述了Python创建对称矩阵的方法.分享给大家供大家参考,具体如下: 对称(实对称)矩阵也即: step 1:创建一个方阵 >>> import numpy as np & ...

最新文章

  1. Pandas可视化综合指南:手把手从零教你绘制数据图表
  2. libxml/xmlversion.h: No such file or directory
  3. EXPRESS.JS再出发
  4. vb.net2019-Accord.Net机器学习库安装与SVM简单分类
  5. 根据HTML5 获取当前位置的经纬度【百度地图】【高德地图】
  6. 【渝粤教育】电大中专建筑施工组织作业 题库
  7. oem是代工还是贴牌_代加工和贴牌加工的区别是什么
  8. java 获取apk的包名_java从apk文件里获取包名、版本号
  9. java图片框架_Java图片处理开源框架
  10. 同济保研计算机,同济大学保研率28%,保研高校前四:复旦、北大、交大、清华...
  11. FreeRTOS基础教程第一章创建任务
  12. lens flare:镜头光晕
  13. 为自己加油!--ThoughtWorks面试后感
  14. 提高工作效率的tab
  15. PyTorch入门学习-4.自然语言分类任务
  16. CentOS7环境安装oracleRAC集群遇到的问题总结二(执行root.sh报错ORA-15018和ORA-15020)
  17. node 简介及安装
  18. linux 日志 取证,Linux系统取证
  19. CAD制图初学入门:CAD选项配置的使用技巧
  20. 万一的delphi博客写得太好了,真是有专门研究delphi的高手

热门文章

  1. 解决genymotion-arm-translation.zip无法拖拽安装的问题
  2. 牛客-丢手绢(尺取)
  3. Android anr介绍
  4. 使用Python类似pandas的方式读取xml文件
  5. AWC EC2创建步骤
  6. 修改VMware虚拟机网卡MAC地址的方法总结
  7. 小红书种草文案应该怎么写?记住这几个技巧
  8. 每日微信群互联网早报简报:小红书测试视频互动功能 将大幅降低用户视频创作门槛...
  9. dwg文件怎么打开呢?如何快速打开dwg图纸?
  10. oracle的oms端口默认,怎么查看grid control oms的登录端口