身为初学者,能力有限,知识尚少,如有纰漏,还望海涵。

  对于表达式,通常有三种表示方法,前、中、后缀表示法。我们日常使用的数学算式就是中缀表示法。例:1+5*10-10/2

码文不易,希望支持,谢谢->支持原创

波兰表示法

  波兰表示法(Polish notation,或波兰记法),是一种逻辑、算术和代数表示方法,其特点是操作符置于操作数的前面,因此也称做前缀表示法。波兰表示法——维基百科

 举个例子

一个算式: 1+5∗10−10/2 1 + 5 ∗ 10 − 10 / 2 1+5*10-10/2
用波兰法表示就是: −+1∗510/102 − + 1 ∗ 5 10 / 10 2 - + 1 * 5 \, 10 \,/\, 10\, 2
是不是有点反人类,有人就要问了,这玩意看着费劲,为啥要这么写?
答案就是,虽然这玩意人看着费劲,但是更便于机器使用。

 规则

那么如何去运算波兰表示法呢?
通过学习,我的总结是
1. 在前面的符号后运算,后面的符号先运算。
2. 每一步运算都是符号和后面两个数的运算。
3. 运算之后把原来的算式替换成结果,继续之后的运算。

又如何把中缀算式转换成波兰表示法呢?

  1. 把操作数提出来,按照原顺序摆好。
  2. 根据运算步骤,在两操作数前加符号。如果已经有符号,则后加的在前面。

经过转换之后,不再需要括号。

逆波兰表示法

  逆波兰表示法(Reverse Polish notation,RPN,或逆波兰记法),是一种是由波兰数学家扬·武卡谢维奇1920年引入的数学表达式方式,在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。逆波兰表示法——维基百科

 举个例子

一个算式: 1+5∗10−10/2 1 + 5 ∗ 10 − 10 / 2 1+5*10-10/2
用波兰法表示就是: 1510∗+102/− 1 5 10 ∗ + 10 2 / − 1 \, 5 \, 10* +\, 10 \, 2 \,/-
是不是有点反人类,有人就要问了,这玩意看着费劲,为啥要这么写?
答案就是,虽然这玩意人看着费劲,但是更便于机器使用。

 规则

那么如何去运算逆波兰表示法呢?
通过学习,我的总结是
1. 在前面的符号先运算,后面的符号后运算。
2. 每一步运算都是符号和前面两个数的运算。
3. 运算之后把原来的算式替换成结果,继续之后的运算。

又如何把中缀算式转换成波兰表示法呢?

  1. 把操作数提出来,按照原顺序摆好。
  2. 根据运算步骤,在两操作数后加符号。如果已经有符号,则后加的在后面。

经过转换之后,不再需要括号。

支持原创

码文不易,希望支持,谢谢->支持原创

再次感谢,大家对本人的支持。

波兰表示法与逆波兰表示法相关推荐

  1. 编译原理逆波兰式实验java_逆波兰式算法的编译原理实验过程.doc

    逆波兰式算法的编译原理实验过程 实验目的 深入理解算符优先分析法 掌握FirstVt和LastVt集合的求法有算符优先关系表的求法 掌握利用算符优先分析法完成中缀表达式到逆波兰式的转化 实验内容及要求 ...

  2. JAVA实现逆波兰转换,java实现逆波兰式

    package com.yj.rpn; import java.util.*; import java.util.logging.StreamHandler; /** * Created by yan ...

  3. php逆波兰表达式,PHP实现逆波兰式 - 计算工资时用

    近期一个小项目需要用到公式运算, 所以就进行一些了解,以下内容均属于个人经验. 在PHP中实现公式表达式四则运算大概有两种方法: 1)使用系统函数eval 2)将表达式转换成逆波兰表达式进行计算. / ...

  4. NPI (Neural Program Interpreter) 逆波兰表达式--什么是逆波兰表达式

    打算详细的写一下NPI, 感觉这个蛮帅的.第一篇就先介绍一下要解决的问题了. 中置表达式与逆波兰 "先算乘除,再算加减,最先算括号",这是数学老师告诉我们的用来解决表达式的口诀,可 ...

  5. php 逆波兰 if,什么是逆波兰式?

    逆波兰式的英文全称是"Reverse Polish notation",也叫后缀表达式,逆波兰式在计算机看来是比较简单易懂的结构,因为计算机普遍采用的内存结构是栈式结构,它执行先进 ...

  6. 将表达式转换成逆波兰式

    http://www.cnblogs.com/stay-foolish/archive/2012/04/25/2470590.html 假设表达式由单字母变量和双目四则运 算算符构成.试写一个算法,将 ...

  7. 7-10 逆波兰表达式求值 (20 分)(c语言)(数据结构)

    逆波兰表示法是一种将运算符(operator)写在操作数(operand)后面的描述程序(算式)的方法.举个例子,我们平常用中缀表示法描述的算式(1 + 2)*(5 + 4),改为逆波兰表示法之后则是 ...

  8. 7-323 逆波兰表达式 (10 分)

    7-323 逆波兰表达式 (10 分) 逆波兰表达式是一种把运算符前置的算术表达式,例如普通的表达式2 + 3的逆波兰表示法为+ 2 3.逆波兰表达式的优点是运算符之间不必有优先级关系,也不必用括号改 ...

  9. 前缀表达式后缀表达式_你知道波兰表达式和逆波兰表达式吗

    什么是波兰表达式 我们日常的运算表达式通常是如下形式,这种成为中缀表达式,也就是运算符在运算数的中间.这种表达式人类很容易识别,并根据其进行计算,但计算机识别这种表达式非常困难. a + b * (c ...

最新文章

  1. C# 如何实现pfx与snk密钥文件的转换
  2. java+JBroFuzz对restful api进行fuzz测试
  3. centos更改MySQL数据库目录位置
  4. java访问同一个变量_java – 从另一个类访问变量
  5. spring boot 中文文档地址
  6. python软件下载安装-python安装最新下载_python安装绿色版 - 软件帝
  7. 移动端拖拽(模块化开发,触摸事件,webpack)
  8. Localtunnel(Node.js 版) 使用教程
  9. 卧式单面多轴钻孔组合机床动力滑台液压系统的设计
  10. 字蛛(font-spider)教学——ttf/otf字体文件压缩
  11. 聚合支付的钱先到哪?一文让你读懂什么是聚合支付
  12. python 面积计算器
  13. jsp酒店客房预订系统带前端
  14. Cisco Packet Tracer路由器ip简单配置(网关)
  15. Directsound 与 Waveout 有何不同
  16. 2022-2028全球军用弩行业调研及趋势分析报告
  17. Google大神每天写多少行代码?真相让你吃惊!
  18. turtle绘画,设置画布的背景图片
  19. 为什么正则表达式中.*可以匹配任意字符?
  20. 关于黑苹果卡在[IGPU] Scheduler Throttle Cap=100ms的解决办法

热门文章

  1. Redis --图灵
  2. Ubuntu 16.04 安装 IDEA
  3. 两级bootloader的几种方案
  4. 算法交易是指使用计算机,量化投资(下篇)——程序化交易 100分题库及答案...
  5. java实现抽奖_Java实现简单抽奖功能界面
  6. 匈牙利算法求解二分图最大匹配问题
  7. C ++匿名函数:揭开C++ Lambda表达式的神秘面纱
  8. 云桌面VOI计算存储在服务器端,云桌面中VOI架构有什么优势和劣势?
  9. ECMall 商城源码下载以及使用说明
  10. 内容溢出滚动时显示不全的问题