繁体   English   中英

计算布尔表达式的括号方法

[英]calculating the ways of parenthesizing a boolean expression

计算将布尔表达式括起来的方法的数量。 例如,布尔表达式我的意思是这样的,1^0|0|1,对于运算符,它可以是 ^、& 或 |。

做了一些参考和计算,似乎方式的数量总是(2n)!/((n + 1)!n!),其中n是运营商的数量。 如果有人有任何想法为什么方法的数量总是 (2n)!/((n+1)!n!),感谢分享见解。

这是一个关于我如何表示不同的括号方式的示例,例如,两种不同的括号方式都导致 False。

1^((0|0)|1) 1^(0|(0|1))

提前致谢,林

加泰罗尼亚数字给出了将表达式完全括起来的方法的数量 到目前为止,理解为什么会出现这种情况的最简单方法是对加泰罗尼亚数字使用以下公式:

公式

当有 0 个运算符时,只有一种方法可以将表达式完全括起来: (x)

当我们有一个包含n运算符的表达式时,我们可以将第一个运算符放在n位置:

x|x       One operator, one possible location.
 ^

x|x|x     Two operators, two possible locations.
 ^ ^

当我们“放置”一个运算符时,我们只需将左侧括号的可能方式数乘以右侧括号的方式数。 我们对每个可能的位置都这样做,并总结这些可能性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM