用图语言描述一个智力题的求解过程
2015-10-07 22:16
183 查看
题目参考自这个链接
% 问题描述: % 小明和小强都是张老师的学生,张老师的生日是M月N日,2人都知道张老师的生日是下列10组中的一天, % 3月4日 3月5日 3月8日 % 6月4日 6月7日% 9月1日 9月5日 % 12月1日 12月2日 12月8日 % 张老师把M值告诉了小明,把N值告诉了小强,张老师问他们知道他的生日是那一天吗? % 小明说:如果我不知道的话,小强肯定也不知道。 % 小强说:本来我也不知道,但是现在我知道了。 % 小明说:哦,那我也知道了。 % 请根据以上对话推断出张老师的生日是哪一天? %% 构建图 g=graph; g=g.addnode({'3月','6月','9月','12月','1日','2日','4日','5日','7日','8日'}); g=g.addedge([1 1 1 2 2 3 3 4 4 4],[7 8 10 7 9 5 8 5 6 10]); figure(1),plot(g) %% 小明说:如果我不知道的话,小强肯定也不知道。 a=find(g.degree==1); for i=1:length(a) g=g.rmedge(g.neighbors(a(i)),g.neighbors(g.neighbors(a(i)))); end figure(2) plot(g) %% 小强说:本来我也不知道,但是现在我知道了。 g1=graph(); g1=g1.addnode(g.Nodes); a=find(g.degree==1); for i=1:length(a) g1=g1.addedge(a(i),g.neighbors(a(i))); end g=g1; plot(g) %% 小明说:哦,那我也知道了。 g1=graph(); g1=g1.addnode(g.Nodes); a=find(g.degree==1); c=false(size(a)); for i=1:length(c) if ~c(i) [isina,loc]=ismember(g.neighbors(a(i)),a); if isina c(loc)=true; g1=g1.addedge(a(i),a(loc)); end end end g=g1; figure plot(g)
相关文章推荐
- 数据加密--MD5
- mysql: unknown variable 'character-set-client=utf8'
- C++ 命名规范小结
- 菜谱
- 【C语言】输出一个整数的每一位
- JAVA_SE基础——39.继承
- 兄弟郊游问题(南阳oj97)
- 项目范围管理论文的提纲
- 计算器 四则运算
- spark on machine learning--基本统计
- 和为s的两个数字VS和为s的连续整数序列
- 项目范围管理论文的提纲
- Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
- 监听器
- JAVA作业之两数的加减乘除
- LeetCode OJ:Lowest Common Ancestor of a Binary Tree(最近公共祖先)
- 作业9
- 作业8
- 虚拟网卡驱动出现的问题
- 大龄屌丝自学笔记--Java零基础到菜鸟--028