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 相关文章推荐
javascript js cookie的存储,获取和删除
Dec 29 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
Dec 22 Javascript
jquery实现手机号码选号的方法
Jul 31 Javascript
基于javascript实现checkbox复选框实例代码
Jan 28 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
jquery 动态增加删除行的简单实例(推荐)
Oct 12 Javascript
jQuery的extend方法【三种】
Dec 14 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
Jan 09 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
Feb 01 Javascript
React之PureComponent的使用作用
Jul 10 Javascript
详解vue-router传参的两种方式
Sep 10 Javascript
小程序点击图片实现png转jpg
Oct 22 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的FTP学习(二)[转自奥索]
2006/10/09 PHP
PHP添加MySQL数据记录代码
2008/06/07 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP使用SOAP调用.net的WebService数据
2013/11/12 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
一句话JavaScript表单验证代码
2009/08/02 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
浅谈javascript事件取消和阻止冒泡
2015/05/26 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
详解es6超好用的语法糖Decorator
2018/08/01 Javascript
js中的深浅拷贝问题简析
2019/05/10 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
vue3.0+vue-router+element-plus初实践
2020/12/02 Vue.js
Python简单生成8位随机密码的方法
2017/05/24 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
关于反爬虫的一些简单总结
2017/12/13 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
django rest framework 实现用户登录认证详解
2019/07/29 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Python如何获取文件指定行的内容
2020/05/27 Python
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
《美丽的小路》教学反思
2014/02/26 职场文书
国际经济与贸易专业大学生职业规划书
2014/03/01 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
写给医生的感谢信
2015/01/22 职场文书
迎新生晚会主持词
2015/06/30 职场文书
怎样写工作总结啊!
2019/06/18 职场文书
在NumPy中深拷贝和浅拷贝相关操作的定义和背后的原理
2022/04/14 Python