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 相关文章推荐
jquery一般方法介绍 入门参考
Jun 21 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
Mar 13 Javascript
javascript实时获取鼠标坐标值并显示的方法
Apr 30 Javascript
JS实现点击按钮控制Div变宽、增高及调整背景色的方法
Aug 05 Javascript
JQuery自适应窗口大小导航菜单附源码下载
Sep 01 Javascript
在Ubuntu系统上安装Node.JS的教程
Oct 15 Javascript
用原生js统计文本行数的简单示例
Aug 19 Javascript
老生常谈javascript中逻辑运算符&&和||的返回值问题
Apr 13 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
小程序简单两栏瀑布流效果的实现
Dec 18 Javascript
JavaScript遍历数组的方法代码实例
Jan 14 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
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
PHP文件上传类实例详解
2016/04/08 PHP
php生成酷炫的四个字符验证码
2016/04/22 PHP
php正则修正符用法实例详解
2016/12/29 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
JS 控制非法字符的输入代码
2009/12/04 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
fixedBox固定div漂浮代码支持ie6以上大部分主流浏览器
2014/06/26 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
封装好的javascript前端分页插件pagination
2016/01/04 Javascript
详述JavaScript实现继承的几种方式(推荐)
2016/03/22 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
django基础之数据库操作方法(详解)
2017/05/24 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
Python的PIL库中getpixel方法的使用
2020/04/09 Python
python模块内置属性概念及实例
2021/02/18 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
简单html5代码获取地理位置
2014/03/31 HTML / CSS
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
荷兰的时尚市场:To Be Dressed
2019/05/06 全球购物
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
工程技术员岗位职责
2015/04/11 职场文书
《假如》教学反思
2016/02/17 职场文书
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技