利用后缀表达式(逆波兰式)算24点的JavaScript版算法
作者:dh20156 来源:w3cgroup 发布时间:2010-01-23 10:57:00
标签:算法,逆波兰式,JavaScript
思想:
4个数字的排列,加上3个运算符的排列,使用后缀表达式的表现如下:
情形一:
1,2,3,4,+,-,* => 24*24*4
情形二:
1,2,3,+,4,-,* => 24*24*4
情形三:
1,2,3,+,-,4,* => 24*24*4
情形四:
1,2,+,3,-,4,* => 24*24*4
情形五:
1,2,+,3,4,-,* => 24*24*4
每种表现形式后面的24为4个数字的排列,4个运算符的排列,后面的4为运算符可能出现的4种情形,以第一种情况为例:
1,2,3,4,+,-,*
1,2,3,4,+,-,+
1,2,3,4,+,+,-
1,2,3,4,+,+,+
至此,大概的算法思想可以总结如下:
声明数据栈ds,保存要计算数字的排列结果;
声明算符栈os,保存四则算符的排列结果;
遍历数据栈,每次按上面列出的后缀表达式数据格式,通过遍历算符栈进行整理组合,直到结束,即可得到所有的计算表达式。
将这些表达式求值,将符合要求(即等于24,由于计算精度问题,大于23.99的结果也算正确)的结果保留,最后还需要一个将后缀表达式转换为中缀表达式的过程。
0
投稿
猜你喜欢
- 前言TF(TransForm),就是坐标转换,包括了位置和姿态两个方面的变换,坐标变换是机器人学中的概念。在机器人学中,无论一个机器人多么复
- 首先简单介绍一下什么叫MySQL;数据库简而言之就是存储数据的仓库,为了方便数据的存储和管理,它将数据按照特定的规律存储在磁盘上。是为了实现
- 首先使用内置模块os.>>> import os>>> code = os.system("p
- 字典是python中唯一内建的映射类型。字典中的值并没有特殊的顺序,但是都存储在一个特定的键(key)里。键可以是数字,字符串甚至是元组。1
- 本文实例讲述了Python3中的真除和Floor除法用法。分享给大家供大家参考,具体如下:在Python3中,除法运算有两种,一种是真除,一
- 执行 datax 作业,创建执行文件,在 crontab 中每天1点(下面有关系)执行:其中 job_start 及 job_finish
- 只是粗略的知道yield可以用来为一个函数返回值塞数据,比如下面的例子:def addlist(alist): &nbs
- 1.问题如果我想获取一个目录下的所有文件列表,使用 Golang 该如何实现呢?比如有个目录 dir 结构如下:tree dirdir├──
- 本文实例讲述了python关于矩阵重复赋值覆盖问题的解决方法。分享给大家供大家参考,具体如下:import itertoolsimport
- 本文为大家分享了python实现扫雷游戏的具体代码,供大家参考,具体内容如下本文实例借鉴mvc模式,核心数据为model,维护1个矩阵,0表
- GeoJson的简要介绍GeoJson是用json的语法表达和存储地理数据,可以说是json的子集。GeoJson以键值对的形式保存原有对象
- Vue 中使用 jQuery 和 Bootstrap 不是特别符合 Vue 原生的写法,但是有时候又要用,所以放上我的引入设置,供大家参考。
- 本文主要研究的是flask如何截获所有访问,以及before_request、after_request修饰器的相关内容,具体如下。在学习着
- yolov5返回坐标(v6版)1 、从yolov5文件夹李找到detect.py,按Ctrl+F 输入annotator.box_label
- 这篇文章主要介绍了python常用排序算法的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 一.环境搭建1.下载安装包访问 Python官网下载地址:https://www.python.org/downloads/下载适合自己系统
- 字符串在 Python 中创建字符串对象非常容易。只要将所需的文本放入一对引号中,就完成了一个新字符串的创建(参见清单 1)。如果稍加思考的
- 一、图像二值化1.效果2.源码import cv2import numpy as npimport matplotlib.pyplot as
- 按照某一列排序d = {'A': [3, 6, 6, 7, 9], 'B': [2, 5, 8, 0, 0]
- 在php中使用Xajax能够即时与数据库发生交互带给用户更好的体验主要的应用有网页的即时、不刷新的登录系统也可以利用于注册系统中即时验证用户