s****m 发帖数: 160 | 1 例如2^3^2 = 2^(3^2) = 512,而不是intuitively
(2^3)^2 = 64?
有什么特别的原因吗? | b***i 发帖数: 3043 | 2 能说一下这是什么语言吗?
不过在数学上,前者是规定,数学家们觉得更显然,而不是后者。后者可以等价于2^(3*2)。
【在 s****m 的大作中提到】 : 例如2^3^2 = 2^(3^2) = 512,而不是intuitively : (2^3)^2 = 64? : 有什么特别的原因吗?
| s****m 发帖数: 160 | 3 多谢。我想到的是Unix下的bc命令。
2)。
【在 b***i 的大作中提到】 : 能说一下这是什么语言吗? : 不过在数学上,前者是规定,数学家们觉得更显然,而不是后者。后者可以等价于2^(3*2)。
| r*g 发帖数: 3159 | 4 我理解你要是写计算器程序,输入表达式是压到一个stack里,同优先级的是先算后面
。 | a****l 发帖数: 8211 | 5 whoever writes 2^3^2 should be spanked. Period.
【在 s****m 的大作中提到】 : 例如2^3^2 = 2^(3^2) = 512,而不是intuitively : (2^3)^2 = 64? : 有什么特别的原因吗?
| s****m 发帖数: 160 | 6 是的,我是考虑写类似bc的计算器程序。
但是用stack有一个问题:那样1-2-3就是2而不是-4了。
这里减号是left associative的。
因为+,-,x,/都是left associative的,只有^不是,这种
不一致是我最初问这个问题的原因。当然如果是数学家定的
规则,我也没什么可说的。
【在 r*g 的大作中提到】 : 我理解你要是写计算器程序,输入表达式是压到一个stack里,同优先级的是先算后面 : 。
| t****t 发帖数: 6806 | 7 第一, 2^2^2=2^(2^2)是数学家定的规则; 第二, 写bc类的程序请参考任何一本编译原
理的书, 这是最基本的语法分析.
【在 s****m 的大作中提到】 : 是的,我是考虑写类似bc的计算器程序。 : 但是用stack有一个问题:那样1-2-3就是2而不是-4了。 : 这里减号是left associative的。 : 因为+,-,x,/都是left associative的,只有^不是,这种 : 不一致是我最初问这个问题的原因。当然如果是数学家定的 : 规则,我也没什么可说的。
| x****u 发帖数: 44466 | 8 你找个计算器玩一下就知道了。
【在 s****m 的大作中提到】 : 是的,我是考虑写类似bc的计算器程序。 : 但是用stack有一个问题:那样1-2-3就是2而不是-4了。 : 这里减号是left associative的。 : 因为+,-,x,/都是left associative的,只有^不是,这种 : 不一致是我最初问这个问题的原因。当然如果是数学家定的 : 规则,我也没什么可说的。
|
|