【MATLAB编程】输出所有的九宫图
【问题描述】九宫图是我国古老的数学问题,也是一种数字艺术,就是把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编程】输出所有的九宫图相关推荐
- 用java语言编写程序计算九宫图
前言 对于程序员来说,用程序解决数学问题是最有趣的事情之一.本人研究了一个能够轻易计算九宫图的算法,并且用java语言编写程序得以实现.现将算法和代码公布,欢迎广大程序爱好者前来阅读.交流. 九宫图简 ...
- idft重建图像 matlab_利用 MATLAB 编程,打开一幅图像,对其进行 DFT 变换,并置其不同区域内的系数为零,进行 IDFT ,观察其输出效果。_学小易找答案...
[连线题]请对正确的快键键连线 [判断题]板书是指教师在课堂黑板或白板上书写,将教学内容形象.直观.简洁地传授给学生.清晰.流畅.快速的粉笔书写是课堂板书的基本功. [其它]利用 MATLAB 编程, ...
- MATLAB编程(4)——MATLAB绘制二维高斯函数的三维图
本篇博文记录使用MATLAB绘制二维高斯函数的三维图. 用到的MATLAB函数--mesh()(绘制三维线框图)和surf()(绘制三维表面图). MATLAB命令窗口输入>> doc 函 ...
- matlab两点之间的所有路径,引用 在图中搜索两点间的所有路径matlab编程
引用 在图中搜索两点间的所有路径matlab编程 2018-09-18 function possiablePaths = findPath(Graph, partialPath, destinati ...
- 用MATLAB编程正弦稳态相量图,matlab课程设计--利用MATLAB对线性电路正弦稳态特性分析...
matlab课程设计--利用MATLAB对线性电路正弦稳态特性分析 课程设计任务书 学生姓名: 专业班级: 指导教师: 刘 新 华 工作单位:信息工程学院 题 目: 利用MATLAB对线性电路正弦稳态 ...
- 怎么把matlab中的图导出,matlab的数据能保存到excel表格-如何将matlab 中输出的图形保存到Excel中去,详细点...
怎样将MATLAB中的数据输出到excel中 数据保存到excel文件 xlswrite(xlsfile, data, sheet, range); % sheet 和 range可以不指定 如: x ...
- Matlab编程学习笔记【待续】
最近想用Matlab进行数据分析,算法性能测试,平时由于用的是C.C++,因此很多习惯都一时改不了,这里自己列出来一些Matlab中明显不同的地方. 矩阵单元元素访问方式:A(1,2)---A[1][ ...
- 半小时入门MATLAB编程入门基础知识:
https://learnxinyminutes.com/docs/zh-cn/matlab-cn/ 半小时入门MATLAB编程入门基础知识: % 以百分号作为注释符 %{ 多行注释 可以 这样 表示 ...
- Python和Matlab生成图片到visio的矢量图
目录 1 概述 2 Python生成图片到visio的矢量图 2.1 python 保存为svg 2.2 svg 转emf 2.3 Visio编辑和修剪矢量波形图 3 Matlab生成图片到visio ...
最新文章
- PVD与CVD性能比较
- 实际测试例子+源码分析的方式解剖MyBatis缓存的概念
- 华为云交付项目服务器配置表,云端服务器配置表
- 如何正确使用Git Flow 流程
- nohup-真正的Shell后台运行
- boost::mpl模块实现push_back相关的测试程序
- Qt Creator创建组件
- python chrome headless_[技巧] chrome headless 爬虫抓取websoket 数据
- CSP2019洛谷P5665:划分(单调队列,高精度)
- linux centos7.2 nodeJs全局安装
- python3 threading是否被抛弃_Python3中的线程模块是否发生了变化?如果是,怎么办?...
- tarjan 算法模板
- 宫崎峻《となりのトトロ》(龙猫)全剧本(中日对照)(2)
- 解决办法:更新linux时候提示“由于没有公钥,无法验证下列签名 ***”
- foreach 和 list.foreach 初步测试
- wps怎么在中文后面加数字_wps带圆圈数字序号⑩后面怎么输入
- 移远ec20型号区别_移远无线4G通讯原装模块-EC20
- Win10开启ssh和scp
- openEuler Summit | 江大勇:凝聚创新力量 逐梦数字时代星辰大海
- pta 天梯赛的善良(C语言实现)