我有7个布尔变量name
A1
A2
A3
B1
B2
B3
C
现在,如果
,条件应该评估为真或
我不确切地知道如何从中得出一个简短的条件:
任何提示如何开始?
答案 0 :(得分:3)
你没有指定一个上下文,所以我按照你的标签去做,假设你是用Java编写的。下面是您将用于评估您提出的2个条件测试的代码。
对于“A中的至少一个和B中的一个”:
bool condition1 = (A1 || A2 || A3) && (B1 || B2 || B3)
对于“C并且A和B中的至少一个是真的”(读作为A& B变量被测试为一个):
bool condition2 = C && (A1 || A2 || A3 || B1 || B2 || B3)
答案 1 :(得分:1)
“至少有一个”也可以写成“不是”,所以:
!(!B1 && !B2 && !B3)
这也可以写成(应用De Morgan's Rule):
B1 || B2 || B3
您指定的其他内容可以或多或少地直接翻译,并适当使用&&
,||
和括号来解决歧义。
答案 2 :(得分:1)
(A1 || A2 || A3) && (B1 || B2 || B3)
((A1 || A2 || A3) && (B1 || B2 || B3)) && C
答案 3 :(得分:1)
至少有一个意味着你必须要他们
所以你的第一个条件是(A1 || A2 || A3)&& (B1 || B2 || B3)
答案 4 :(得分:1)
“至少有一个”= OR = ||
“和”= AND = &&
因此这两部分是:
(A1 || A2 || A3) && (B1 || B2 || B3)
或
C && (A1 || A2 || A3 || B1 || B2 || B3)
因此:
boolean R = ((A1 || A2 || A3) && (B1 || B2 || B3)) || (C && (A1 || A2 || A3 || B1 || B2 || B3));
眼睛稍微容易一些(也许是心灵):
boolean T1 = (A1 || A2 || A3);
boolean T2 = (B1 || B2 || B3);
boolean R = (T1 && T2) || (C && (T1 || T2));
答案 5 :(得分:1)
A中的至少一个和B中的至少一个是真的 或
C且A和B中至少有一个是真的
((a1 || a2 || a3)&&(b1 || b2 || b3))|| (c&&((a1 || a2 || a3)&&(b1 || b2 || b3)))
答案 6 :(得分:0)
类似的东西:
isTrue = ( ((A1 || A2 || A3) && ( B1 || B2 || B3)) ||
( C && ( (A1 || A2 || A3) && ( B1 || B2 || B3) ) ) )
第二部分的问题不是很清楚:
C和A和B中的至少一个= C或A中的至少一个和B中的至少一个?
如果是这种情况,一些答案是不正确的。
C和(A1和!B1)应评估为False,而答案中的某些表达式将评估为true。