js实现杯子倒水问题自动求解程序


Posted in Javascript onMarch 25, 2013

智力测试题经常遇到类似的逻辑题,给几个容量不等的杯子,让你倒出多少的水。

安卓上有一款专门玩这个题的游戏叫做Water Logic.

js实现杯子倒水问题自动求解程序

我安装这个游戏把几十个关卡通了一遍,感觉这个游戏的关卡设计很不好,关卡的难度并不是递增的,有很多后面的关卡相当的弱智,并且缺乏高难度的关卡。

做为程序员的我们,玩这类题目应该都没问题,10步以内的都可以轻松搞定,10步以上的也可以搞定但未必能够轻松达到最少步数。

有3颗星强迫症的玩家兼程序员,写出这么个自动求解的小程序,以后这个问题再也不是问题了。

js实现杯子倒水问题自动求解程序

点击这里试试杯子倒水问题自动求解吧

算法基本逻辑

每个杯子有倒满、倒空、倒入其它杯子的操作,所以总共是: 杯子数*(杯子数-1+2)

对于3只杯子的情况,每一步可选的操作有12种.  如果2个杯子则每步可选操作有6种。

遍历每一种操作,记录操作完成后各个杯子内的水量,以水量计算出一个key来建立map.

遍历各种倒水操作的过程中,如果key已经存在且当前步数大于先前记录的步数则舍弃该操作。

这个小程序只能解决2个杯子或3个杯子的倒水问题,并没有写成N个杯子通用的,代码有很多hard code。

Javascript 相关文章推荐
云网广告中的代码,提示出错,大家找找
Nov 21 Javascript
javascript之锁定表格栏位
Jun 29 Javascript
jQuery 性能优化指南 (1)
May 21 Javascript
jquery cookie插件代码类
May 26 Javascript
JavaScript 序列化对象实现代码
Dec 18 Javascript
AngularJS入门教程(一):静态模板
Dec 06 Javascript
javascript实现粘贴qq截图功能(clipboardData)
May 29 Javascript
AngularJS中的API(接口)简单实现
Jul 28 Javascript
原生js实现可拖拽效果
Feb 28 Javascript
Angular4 Select选择改变事件的方法
Oct 09 Javascript
通过JS运行机制的角度说说作用域
Mar 12 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
js实现上传图片之上传前预览图片
Mar 25 #Javascript
使用jQuery validate 验证注册表单实例演示
Mar 25 #Javascript
多个表单中如何获得这个文件上传的网址实现js代码
Mar 25 #Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 #Javascript
博客侧边栏模块跟随滚动条滑动固定效果的实现方法(js+jquery等)
Mar 24 #Javascript
js 字符串转换成数字的三种方法
Mar 23 #Javascript
jquery多选项卡效果实例代码(附效果图)
Mar 23 #Javascript
You might like
php数组函数序列之array_search()- 按元素值返回键名
2011/11/04 PHP
PHP的Yii框架的常用日志操作总结
2015/12/08 PHP
Yii框架参数化查询中IN查询只能查询一个的解决方法
2017/05/20 PHP
利用jQuery 实现GridView异步排序、分页的代码
2010/02/06 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
jQuery中的通配符选择器使用总结
2016/05/30 Javascript
关于RequireJS的简单介绍即使用方法
2016/10/20 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
vue超时计算的组件实例代码
2018/07/09 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
Python中bisect的用法
2014/09/23 Python
Python编程判断这天是这一年第几天的方法示例
2017/04/18 Python
python flask搭建web应用教程
2019/11/19 Python
Python创建一个元素都为0的列表实例
2019/11/28 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
医学生实习自荐信
2013/10/01 职场文书
《我的伯父鲁迅先生》教学反思
2014/02/12 职场文书
商务英语专业求职信
2014/06/26 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
小学教师读书笔记
2015/07/01 职场文书
五年级数学教学反思
2016/02/16 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js