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 相关文章推荐
JS操作select下拉框动态变动(创建/删除/获取)
Jun 02 Javascript
页面加载完毕后滚动条自动滚动一定位置
Feb 20 Javascript
JavaScript获取图片的原始尺寸以宽度为例
May 04 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
Nov 10 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
Dec 17 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
JS触摸与手势事件详解
May 09 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
Jun 08 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
Oct 26 jQuery
vue调试工具vue-devtools安装及使用方法
Nov 07 Javascript
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 Javascript
js实现手表表盘时钟与圆周运动
Sep 18 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 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
解析php利用正则表达式解决采集内容排版的问题
2013/06/20 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
List the Codec Files on a Computer
2007/06/18 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
JS简单实现数组去重的方法示例
2017/03/27 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
Node.js pipe实现源码解析
2017/08/12 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
vue 动态改变静态图片以及请求网络图片的实现方法
2018/02/07 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
React中阻止事件冒泡的问题详析
2019/04/12 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
关于你不想知道的所有Python3 unicode特性
2014/11/28 Python
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Python使用jpype模块调用jar包过程解析
2020/07/29 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
掌上明珠Java程序员面试总结
2016/02/23 面试题
销售业务员岗位职责
2014/01/29 职场文书
感恩小明星事迹材料
2014/05/23 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
党员先进事迹材料
2014/12/19 职场文书
高三毕业评语
2014/12/31 职场文书
共青团员自我评价
2015/03/10 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书