MATLAB实现构造Euler环游图的算法——数学建模
来源:互联网 发布:交通灯单片机程序 编辑:程序博客网 时间:2024/05/22 05:10
我们专业课(数学建模)讲的东西由七桥堡问题而来的Euler环游。
如下图,要将其变为Euler环游图。
%首先给出一个矩阵(相邻表示1,不相邻表示0),用来表示图1。
v =
0 1 0 0 0 0 0 1
1 0 1 0 0 0 1 0
0 1 0 1 0 1 0 0
0 0 1 0 1 0 0 0
0 0 0 1 0 1 0 0
0 0 1 0 1 0 1 0
0 1 0 0 0 1 0 1
1 0 0 0 0 0 1 0
Euler1(v)%调用写好的函数
Euler1函数如下:
function f=Euler1(v)
%定义数组用来存放该行是否为奇数。如果为1则表示奇数
count=size(v);
rows=zero(1,count(1));
%第一步是找出奇数行,然后找遍历为1的坐标,准备为该坐标加1
%在此之前先判断该坐标的列标所对应的行是否为奇数,如果是则加1
%如果不是再判断下一个,如果直到完成也没有结果,输出提示。
%说明该图不能变成Euler图。如果可以直到的最后得到结果将结果输出。
%遍历所有行,找出和为奇数的行
for i=1:6
if rem(sum(v(i,:)),2 )~=0 %不等于0
%找到奇数行标记
rows(i)=1;
end
end
%按照原先的标记开始变为Euler图。
for i=1:6
if rows(i)==1
for j=1:6
if v(i,j)==1
if rows(j)==1
v(i,j)=2;
rows(i)=0; %再次赋值为0
break
end
end
end
continue
end
end
v%输出结果
最后得到的图为:
这个是没有考虑到权重的,如果要考虑权重的话,就要稍微复杂点了。
PS:恶补什么是Euler图:http://blog.sina.com.cn/s/blog_49c240bb0100icgp.html
- MATLAB实现构造Euler环游图的算法——数学建模
- 【转】MATLAB实现构造Euler环游图的算法——数学建模
- 数学建模(14)——MATLAB实现最小生成树(Prim与Kruskal算法)
- 《Matlab在数学建模中的应用》杂谈——梦的解析与遗传算法的联系
- Matlab实现——Euler's Method
- MATLAB数学建模(6)-蒙特卡洛算法
- MATLAB数学建模(9)-遗传算法工具
- 数学建模——图
- 数学建模(13)——MATLAB寻找最短路径(Dijkstra算法和Floyd算法)
- 卓金武——从数学建模到MATLAB
- 数学建模(10)——支持向量机的MATLAB应用
- 数学建模 MATLAB的取整函数
- 初学数学建模软件MATLAB的笔记
- Matlab与数学建模
- MATLAB数学建模资料
- Matlab--数学建模
- MATLAB数学建模02
- 数学建模专栏 | 第三篇:MATLAB数据建模方法(上) —常用方法
- RFC文档
- JAVA学习笔记(一)---异常处理
- Flex+ Red5 学习笔记(1)-----red5部署至tomcat
- Flex+Red5学习笔记(3)------调用red5服务器
- Flex+Red5学习笔记(4)----客户端与服务端互调
- MATLAB实现构造Euler环游图的算法——数学建模
- 最近事情简记
- 女儿和数独 (女儿17个月)
- 休闲会所的数据库怎么设计啊????
- 基于内存映射文件方式读写ini文件
- linux网络编程笔记
- java新手学习指导
- SQL server 第二篇 函数在T-SQL中应用
- python的编码问题