推理逻辑算法--------------问题抽象与数学建模
问题:5个人百米赛跑,跑完。
A说:E一定是第一名。
B说:我可能是第二名。
C说:A最慢。
D说:C不是最快的。
E说:D应该是第一名。
最后裁判说:E肯定不是第二第三名,只有1、2名猜对了。
问题:输出5人排名
解题思路:开始我是毫无头绪的,后面参照了爱因斯坦的思考题那样对问题进行抽象,然后建立数学模型。
问题抽象:用方法来抽象对话的判断,用数组建立排名模型。
代码:
package 谁是前锋;public class Main {public char[] rank = {'A','B','C','D','E'};public int count = 0;public static void main(String[] args) {Main ma = new Main();ma.initMain();}public void initMain(){permutation(rank,0,rank.length);}public void permutation(char[] rank,int m,int n){if( m < n - 1 ){permutation(rank,m+1,n);for(int i=m+1;i<n;i++){char t = rank[m];rank[m] = rank[i];rank[i] = t;permutation(rank,m+1,n);t = rank[m];rank[m] = rank[i];rank[i] = t;}}else{if( rank[1] == 'E' || rank[2] == 'E' ){//E肯定不是第三或者第二名return ;}if( judgeA(rank) && judgeB(rank) && judgeC(rank) && judgeD(rank) && judgeE(rank) ){print(rank);}}}public void print(char[] rank){for(int i=0;i<rank.length;i++){System.out.println("第"+(i+1)+"名是:"+rank[i]);}}public boolean judgeA(char[] rank){if( rank[1] == 'A' && rank[0] == 'E' ){//若A是1、2名,A说真话return true;}else if( rank[0] != 'A' && rank[1] != 'A' && rank[0] != 'E' ){//若A不是第1 、 2名,A说错了return true;}return false;}public boolean judgeB(char[] rank){//B猜对了if( rank[1] == 'B' ){return true;}else if( rank[0] != 'B' && rank[1] != 'B' ){//B猜错了return true;}return false;}public boolean judgeC(char[] rank){if( (rank[0] == 'C' || rank[1] == 'C')&& rank[4] == 'A' ){return true;}else if( rank[0] != 'C' && rank[1] != 'C' && rank[4] != 'A' ){return true;}return false;}public boolean judgeD(char[] rank){if( (rank[0] == 'D' || rank[1] == 'D')&& rank[0] != 'C' ){return true;}else if( rank[0] != 'D' && rank[1] != 'D' && rank[0] == 'C' ){return true;}return false;}public boolean judgeE(char[] rank){if( rank[1] == 'E' && rank[0] == 'D' ){return true;}else if( rank[1] != 'E' && rank[0] != 'D' ){return true;}return false;}
}
测试结果:
这题跟我的爱因斯坦的思考题那样,不过爱因斯坦的思考题更加复杂,需要用到两个枚举类。
爱因斯坦的思考题链接:http://blog.csdn.net/jjfly999/article/details/51120238
推理逻辑算法--------------问题抽象与数学建模相关推荐
- a*算法matlab代码_MATLAB数学建模算法的代码模板大全
来喽,来喽! 上期的数模资源大家都领到了嘛 没领到的同学点击下方链接领哦 205G 数学建模备战资料大全免费送!!! 这期的数模代码模板也如约而至 废话不多说,直接上干货 内容大小接近120M,全是纯 ...
- 数学建模算法汇总(全网最全,含matlab案例代码)
数学建模常用的算法分类 全国大学生数学建模竞赛中,常见的算法模型有以下30种: 最小二乘法 数值分析方法 图论算法 线性规划 整数规划 动态规划 贪心算法 分支定界法 蒙特卡洛方法 随机游走算法 遗传 ...
- 建模matlab的算法代码呀,数学建模算法打包
数学建模十大算法程序详解(打包了) 十大算法 1说明.txt Floyd算法 floyd.txt 中国数学建模-数学工具-Floyd最短路算法的MATLAB程序.txt Newton插值.txt di ...
- Python小白的数学建模课-17.条件最短路径算法
条件最短路径问题,指带有约束条件.限制条件的最短路径问题.例如: 顶点约束,包括必经点或禁止点的限制: 边的约束,包括必经路段.禁行路段和单向路段:无权路径长度的限制,如要求经过几步或不超过几步到达终 ...
- 数学建模–模拟退火算法
文章目录 数学建模--智能算法 1.简介 模拟退火算法 1. 简介 2.数学建模中的模拟退火算法原理 3.模拟退火算法流程及应用 1.Metropolis采样算法 2. 退火过程实现算法 3.举个栗子 ...
- 数学建模——粒子群算法步骤及程序详解
文章目录 前言 一.粒子群是什么? 二.粒子群算法的核心公式 1.速度 2.位置 3.核心参数的设置 惯性权重 学习因子 自动退出迭代循环 三.代码详解 总结 前言 优化算法一直都是数学建模比赛的热门 ...
- matlab中gad,10大经典算法matlab代码以及代码详解【数学建模、信号处理】
[实例简介] 10大算法程序以及详细解释,包括模拟退火,禁忌搜索,遗传算法,神经网络.搜索算法. 图论. 遗传退火法.组合算法.免疫算法. 蒙特卡洛.灰色预测.动态规划等常用经典算法.是数学建模.信号 ...
- 大学生数学建模优秀论文发表
大学生数学建模优秀论文篇1 浅谈大学生数学建模的意义 [摘 要]本文重点分析了数学建模对当前数学教育教学改革的现实意义,探讨了数学建模对学生应用数学能力的培养,阐述了计算机在数学建模竞 ...
- Python小白的数学建模课-15.图论的基本概念
图论中所说的图,不是图形图像或地图,而是指由顶点和边所构成的图形结构. 图论不仅与拓扑学.计算机数据结构和算法密切相关,而且正在成为机器学习的关键技术. 本系列结合数学建模的应用需求,来介绍 Netw ...
最新文章
- Andrew Gelman、Aki Vehtari​ | 过去50年最重要的统计学思想是什么?
- 建立数据库时连接出错_PHP的福音!支持多数据库连接,高性能的开源MySQL连接池...
- 解决xcode升级插件失效
- python学习笔记(生成xml)
- mysql 5.6.34.rpm_离线安装mysql5.6及依赖_centos7离线安装mysql5.6.34
- Intellij 14快捷键
- html的标签和标记有啥区别,HTML 元素 b 和 strong 有什么区别?//(强调标签的理解)...
- react中嵌入网页_在网站中添加 React
- 435. 无重叠区间(JavaScript)
- python实用性自己设计_用Python设计PCR引物: Primer3-py 初识
- B站 - 黑客攻防 入门到入狱 [网络安全] -笔记
- 面试前的准备和注意事项(非常详细)
- IT运维存在问题及改进
- Unity配置混合现实应用程序
- ubuntu之使用wine微信之无法发送图片
- WIN2008R2修改远程桌面端口(不重启系统)
- 2017校园招聘 携程编程题
- 2021年Android面试心得,系列教学
- PSO粒子群算法微电网优化调度(微电网孤岛运行优化调度)matlab程序
- RGB值和RGBA值
热门文章
- 计算机评课用语不足与建议,评课用语不足与建议 [听课评语优缺点]
- Revit 2017 编程需要用Visual Studio2015 +.NET Framework 4.52
- VSCode - setting.json配置 - Prettier、Vetur格式化和ESLint检查
- SIGCOMM Conference Slide
- SVN的目录结构介绍和版本管理方式
- pip 安装 pyautogui 失败
- 海康威视摄像机通过SDK实现自动拍照(二)
- python随机森林变量重要性_Python中随机森林的实现与解释
- Linux下常用软件压缩包方式安装
- bzoj 4044: [Cerc2014] Virus synthesis 回文树