【问题描述】九宫图是我国古老的数学问题,也是一种数字艺术,就是把1~9九个数字填到3行3列九个方格中,使其每一横、坚、斜行之和都等于15。

【九宫图历史】
《系辞》云:“河出图,洛出书,圣人则之。”在宋朝之前,洛书的记述只有文字。

九宫图实物最早发现于西汉,1977年中国考古学家在安徽阜阳县双古堆西汉古墓中发现汉文帝七年(前173年)的太乙九宫占盘,乃是中国汉代幻方的实物。东汉《数术记遗》也有记载。

后来陈抟以降认为河图洛书的洛书代表九宫图,为 1…9 这 9 个数,而 3 行、3 列以及两对角线上各自的数之和均为 15。

【问题分析】
1.首先用perms函数产生1-9的全排列矩阵(9!行9列)。
2.用reshape函数把全排列得到的矩阵重构成3x3的矩阵。
3.计算每一个3x3矩阵的行和、列和、主/副对角线和,并判断它们是否相等。
4.若相等,则把结果存在一个张量Result里。

【主程序代码】

%%
clear all;
close all;
%%
num = 9;
Arr = [1:num];
[SumANine,Result] = ALine(Arr);

【ALine函数】

function [SumANine,Result] = ALine(Arr)m         = 1;n         = 1;y         = perms(Arr);[col row] = size(y);
for l = 1:colALine    = reshape(y(l,:),[3,3]);     Sumcol   = sum(ALine,2);Sumrow   = sum(ALine,1);Sumdiag  = trace(ALine);SumSdiag = trace(flip(ALine));SumANine = [Sumcol.' Sumrow Sumdiag SumSdiag];
if length(unique(SumANine)) == 1Result(:,:,n) = ALine;n             = n + 1;
endm = m + 1;
endend

【运行结果】


喜欢我就关注我吧!!!!

【MATLAB编程】输出所有的九宫图相关推荐

  1. 用java语言编写程序计算九宫图

    前言 对于程序员来说,用程序解决数学问题是最有趣的事情之一.本人研究了一个能够轻易计算九宫图的算法,并且用java语言编写程序得以实现.现将算法和代码公布,欢迎广大程序爱好者前来阅读.交流. 九宫图简 ...

  2. idft重建图像 matlab_利用 MATLAB 编程,打开一幅图像,对其进行 DFT 变换,并置其不同区域内的系数为零,进行 IDFT ,观察其输出效果。_学小易找答案...

    [连线题]请对正确的快键键连线 [判断题]板书是指教师在课堂黑板或白板上书写,将教学内容形象.直观.简洁地传授给学生.清晰.流畅.快速的粉笔书写是课堂板书的基本功. [其它]利用 MATLAB 编程, ...

  3. MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图

    本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...

  4. matlab两点之间的所有路径,引用 在图中搜索两点间的所有路径matlab编程

    引用 在图中搜索两点间的所有路径matlab编程 2018-09-18 function possiablePaths = findPath(Graph, partialPath, destinati ...

  5. 用MATLAB编程正弦稳态相量图,matlab课程设计--利用MATLAB对线性电路正弦稳态特性分析...

    matlab课程设计--利用MATLAB对线性电路正弦稳态特性分析 课程设计任务书 学生姓名: 专业班级: 指导教师: 刘 新 华 工作单位:信息工程学院 题 目: 利用MATLAB对线性电路正弦稳态 ...

  6. 怎么把matlab中的图导出,matlab的数据能保存到excel表格-如何将matlab 中输出的图形保存到Excel中去,详细点...

    怎样将MATLAB中的数据输出到excel中 数据保存到excel文件 xlswrite(xlsfile, data, sheet, range); % sheet 和 range可以不指定 如: x ...

  7. Matlab编程学习笔记【待续】

    最近想用Matlab进行数据分析,算法性能测试,平时由于用的是C.C++,因此很多习惯都一时改不了,这里自己列出来一些Matlab中明显不同的地方. 矩阵单元元素访问方式:A(1,2)---A[1][ ...

  8. 半小时入门MATLAB编程入门基础知识:

    https://learnxinyminutes.com/docs/zh-cn/matlab-cn/ 半小时入门MATLAB编程入门基础知识: % 以百分号作为注释符 %{ 多行注释 可以 这样 表示 ...

  9. Python和Matlab生成图片到visio的矢量图

    目录 1 概述 2 Python生成图片到visio的矢量图 2.1 python 保存为svg 2.2 svg 转emf 2.3 Visio编辑和修剪矢量波形图 3 Matlab生成图片到visio ...

最新文章

  1. PVD与CVD性能比较
  2. 实际测试例子+源码分析的方式解剖MyBatis缓存的概念
  3. 华为云交付项目服务器配置表,云端服务器配置表
  4. 如何正确使用Git Flow 流程
  5. nohup-真正的Shell后台运行
  6. boost::mpl模块实现push_back相关的测试程序
  7. Qt Creator创建组件
  8. python chrome headless_[技巧] chrome headless 爬虫抓取websoket 数据
  9. CSP2019洛谷P5665:划分(单调队列,高精度)
  10. linux centos7.2 nodeJs全局安装
  11. python3 threading是否被抛弃_Python3中的线程模块是否发生了变化?如果是,怎么办?...
  12. tarjan 算法模板
  13. 宫崎峻《となりのトトロ》(龙猫)全剧本(中日对照)(2)
  14. 解决办法:更新linux时候提示“由于没有公钥,无法验证下列签名 ***”
  15. foreach 和 list.foreach 初步测试
  16. wps怎么在中文后面加数字_wps带圆圈数字序号⑩后面怎么输入
  17. 移远ec20型号区别_移远无线4G通讯原装模块-EC20
  18. Win10开启ssh和scp
  19. openEuler Summit | 江大勇:凝聚创新力量 逐梦数字时代星辰大海
  20. pta 天梯赛的善良(C语言实现)

热门文章

  1. 云开发端午节包粽子送祝福语微信小程序源码
  2. 一代宗师陨落!84岁华人计算机视觉泰斗Thomas S. Huang 仙逝,李飞飞等沉痛悼念黄煦涛教授...
  3. excel怎么做汇总
  4. 【P07】DIY推荐:OPA604高电压耳放
  5. 泛微Ecology8.0浏览框详解
  6. yolo论文_YOLO之父宣布退出CV界,坦言无法忽视自己工作带来的负面影响
  7. Springboot+vue整合
  8. python培训上岗
  9. 修改虚拟机的ip地址步骤
  10. Oracle 小数格式化字符串显示 (转)