创建幻方(Magic Square) 3x3

检验并打印幻方矩阵 题目内容: 幻方矩阵是指该矩阵中每一行、每一列、每一对角线上的元素之和都是相等的。从键盘输入一个5×5的矩阵并将其存入一个二维整型数组中,检验其是否为幻方矩阵,并将其按指定格式显示到屏幕上。 输入格式:"%d" 输出格式: 如果是幻方矩阵,输出提示信息:"It is a magic square!\n" 矩阵元素的输出:"%4d"(换行使用"\n") 如果不是幻方矩阵,输出提示信... 阅读详情

# 基准square
"""
1,2,3,4,5,6,7,8,9
total sum = (9*(9+1))/2=45
sum for each raw line = 45/3 = 15

#选中心数字
4个even number,5个odd number
如果要三个数相加等于15(odd number),那么另外两个数的组合需要是even+even+odd或者odd+odd+odd
所以需要选odd为中心数字(会被计算4次,并且会有和其他每一个数字相加的机会)
奇数有:1,3,5,7,9
如果选1,剩下组合和要为14, 只有[5,9]一个组合,只有一次机会凑满15
如果选3,剩下组合和要为12,只有[9,3][8,4][7,5]三个组合
如果选5,剩下组合和要为10,有[9,1][8,2][7,3][6,4]个组合
如果选7,剩下组合和要为8, 但是9+8>15
同理,9也不行

所以选择5为中心数字

#确定组合
如果[9,1]放在对角线,9的三条线,每边剩下的组合和要为6,但只有[1,5][2,4]可以满足,所以[9,1]只能放在非对角线,比如
x 1 x
x 5 x
x 9 x
剩下一组和9相加为15的是[2,4],所以
x 1 x
x 5 x
2 9 4
斜对角[5,4]和[2,5]剩下只能是:8,6,所以
6 1 8
x 5 x
2 9 4
剩下[3,7],填入:
6 1 8
7 5 3
2 9 4

#变形
把这个square旋转,镜像,都可以满足各行列和都等于15的条件,所以一共有8种情况(旋转有4各方向,每个方向可以多一个镜像)
"""
sq = [
        [6,1,8],
        [7,5,3],
        [2,9,4]
    ]

# 镜像    
def reflection(sq):
    #res = [i[::-1] for i in sq]
    res = []
    for i in range(len(sq)):
        lst = []
        for j in range(len(sq)-1,-1,-1):
            lst.append(sq[i][j])
     
从洛书到算法:探索幻方(Magic Square)的构造艺术与编程实现 本文深入探讨了幻方(Magic Square)的历史渊源、数学原理及编程实现,从中国古代洛书到现代算法构造,详细解析了奇阶幻方的罗伯法和偶阶幻方的对称交换法。通过Python代码示例,展示了幻方在数据加密和图像处理等领域的应用价值,揭示了数字对称美的数学奥秘。 阅读详情

相关推荐

MagicSquares:查找所有 3x3 幻方的非常简单的蛮力方法

魔方 强力搜索 3x3 普通幻方(编码演示) 几千年来,幻方一直是一种数学奇思妙想。 有关这些非常有趣的对象的非常完整的概述: 幻方是由 n x n 个数字组成的网格,其中每一行和每一列的总和为相同的值。 普通幻方有额外的限制,即网格中的每个单元格都包含一个从 1 到 n^2 范围内的唯一整数。 几年前,我编写了这个非常简单的 Java 程序,作为解决复杂约束优化问题的贪心算法方法演示的一部分。 你想知道的关于 3x3 幻方的一切很久以前就已经找到了; 甚至有一个公式可以找到所有这些。 所以这种蛮力方法非常野蛮。 尽管如此,这是一个非常有趣的小项目,并且可以通过多种方式扩展此代码以做更有趣的事情。 要运行该程序,只需编译 MagicSquareSearch.java。 系统会提示您提供要放置在初始 3x3 网格中的随机起始值的数量。 选择少量值会使您更有可能收敛到解决方案。

机器学习 线性回归 头歌实训

第1关:简单线性回归与多元线性回归 第2关:线性回归的正规方程解 第3关:衡量线性回归的性能指标 第4关:scikit-learn线性回归实践 - 波斯顿房价预测

weixin_57270536的博客 1万+

基于RK3588与FPGA的SDI视频处理系统:从MIPI CSI-2输入到DSI输出的全链路解析

本文深入解析了基于RK3588与FPGA的SDI视频处理系统全链路。系统利用FPGA作为高速接口转换与流管理核心,将SDI信号转换为MIPI CSI-2数据流送入RK3588进行智能图像处理与AI分析,处理结果再通过MIPI DSI回传,最终由FPGA控制编码为SDI输出,实现了专业视频接口与强大算力的高效协同。

s1t2u3的博客 668

UE5热更新(通过Pak包加载关卡资源,并添加到流关卡)

请先阅读我上一篇文章)**

xialuhui的博客 6456

vins-mono前端详解(2)——imu预积分

本篇文章详细讲解了vins-mono中imu预积分内容,包括复杂的公式推导。

weixin_44587828的博客 1195

AI for Science:GNN预测分子性质全流程详解与工业实践

从分子表示到工业落地,一文掌握图神经网络在药物研发与材料设计中的核心实战近年来,的浪潮正深刻变革着传统科研范式。在药物研发与材料设计领域,作为核心环节,已从传统的实验试错转向基于图神经网络(GNN)的智能计算。本文将深入解析GNN预测分子性质的,涵盖数据准备、模型设计、训练优化到工业部署,并揭秘前沿技术与实战案例。

datacanvas2426的博客 1674

Python 复现AlexNet框架代码

【代码】Python 复现AlexNet框架代码。

Quintin 2420

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

高级数据结构之R树(R-tree)

R树(R-tree)是一种将B树扩展到多维情况下得到的数据结构,它最初由Antonin Guttman于1984年提出。B树的结点中会存储一个键的集合,这些键把线分成片段,沿着那条线的点仅属于一个片段。因此,B树使得我们可以很容易地找到点。如果把沿线各处的点表示成B树结点,我们就能够确定点所属唯一子结点,在那里可以找到该点。 Antonin Guttman在他提出R树的经典论文中给出的R树例子...

白马负金羁 1万+

精雕软件(JDpaint) 5.5 绿色版

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: 找出某月的最后一个周一or第二个星期五
vegeChickenNotes
博客等级 码龄4年 1粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值