以太坊智能合约与逆波兰表达式
想必大家对 1+1,3-4,5*6, 8/4,(1+6)*9,1+6*7,这些简单的数学四则运算都不陌生,有时候遇到买菜大姐, 这些菜称称,一共多少钱啊? 8块,给10块,哎这还有3块,找个儿整。人民群众喜闻乐见,耳熟能详的四则运算,有个高级的称呼中缀表达式。 为什么是中缀,而不是前缀、后缀、上缀、下缀? 中缀因为操作符都在中间位置,那能放到后面去么?当然可以了。 这种把操作符置后的方式叫逆波兰表达式,即 RPN,更通俗的叫法是后缀表达式。 中缀表达式怎么和后缀表达式对应呢? 后缀表达式有什么优点? 相较于前缀表达式更易于转换,最左边一定为运算资源。 不用括号,依靠运算顺序就能确定运算符的优先级,运算更简洁。 更符合计算机的计算方式。计算机通过从左至右读取后缀表达式,就可以将遇到的运算对象压入栈,在遇到运算符时就弹出运算资源,完成计算,再将结果压入栈。最后留在栈中的就是计算结果。 来点小例子,展示后缀表达式的方便与神奇。...