You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求至多两个数A、B、C非正时为真的逻辑表达式及答疑

关于“至多两个数非正”逻辑表达式的解惑

嘿,我来帮你把这个逻辑掰明白~首先咱们先把问题翻译成大白话:“至多两个数A、B、C非正”,意思就是:A、B、C里,非正的数量可以是0个、1个、2个——唯独不能是3个全都是非正的。

那咱们从反面来想就简单多了:这个条件不成立的唯一情况,就是三个数全都是非正的(也就是A<=0B<=0C<=0)。所以要让结果为真,只要排除掉这个“全非正”的情况就行,这就对应了第一个表达式:
!(A <= 0 && B <= 0 && C <= 0)
这里的!是逻辑取反,把“三个全非正”的情况反过来,就正好覆盖了“至多两个非正”的所有合法场景。

再看第二个表达式A > 0 || B > 0 || C > 0,其实它和第一个是完全等价的(这是逻辑里的德摩根定律)。咱们换个角度理解:“至多两个非正”=“至少有一个数是正数”——因为只要有一个数是正数(A>0或者B>0或者C>0),那肯定不可能三个全是非正的,自然就满足条件了。

给你举几个实际例子验证下:

  • 情况1:A=-1,B=-2,C=3(两个非正):!(true&&true&&false)!false=true;false||false||true=true,符合条件。
  • 情况2:A=-1,B=-2,C=-3(三个非正):!(true&&true&&true)!true=false;false||false||false=false,不符合条件。
  • 情况3:A=1,B=2,C=3(零个非正):!(false&&false&&false)!false=true;true||true||true=true,符合条件。
  • 情况4:A=-1,B=2,C=3(一个非正):!(true&&false&&false)!false=true;false||true||true=true,符合条件。

这样是不是就清楚多啦?

内容的提问来源于stack exchange,提问作者Whome

火山引擎 最新活动