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之Date对象和获取系统当前时间详解
Jan 13 Javascript
extjs 分页使用jsp传递数据示例
Jul 29 Javascript
JavaScript数值转换的三种方式总结
Jul 31 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
Sep 26 Javascript
浅谈JavaScript中的Math.atan()方法的使用
Jun 14 Javascript
jQuery实现标题有打字效果的焦点图代码
Nov 16 Javascript
JS实现太极旋转思路分析
Dec 09 Javascript
利用javascript如何随机生成一定位数的密码
Sep 22 Javascript
JS实现的DOM插入节点操作示例
Apr 04 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
vue2 中二级路由高亮问题及配置方法
Jun 10 Javascript
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
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
优化使用mysql存储session的php代码
2008/01/10 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
使用PHP反射机制来构造"CREATE TABLE"的sql语句
2019/03/21 PHP
js中的json对象详细介绍
2014/10/29 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
JS实现的4种数字千位符格式化方法分享
2015/03/02 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
去除html代码里面的script正则方法
2016/05/19 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
AngularJs html compiler详解及示例代码
2016/09/01 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
PyQt5每天必学之像素图控件QPixmap
2018/04/19 Python
python实现黑客字幕雨效果
2018/06/21 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
python读写csv文件并增加行列的实例代码
2019/08/01 Python
python模块常用用法实例详解
2019/10/17 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
德国滑雪和户外用品网上商店:XSPO
2019/10/30 全球购物
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
Seavenger官网:潜水服、浮潜、靴子和袜子
2020/03/05 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
十八大宣传标语
2014/10/09 职场文书
党员民主评议个人总结
2014/10/20 职场文书
爱鸟护鸟的宣传语
2015/07/13 职场文书
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers