真相表 - 援助

时间:2016-04-02 04:43:39

标签: java truthtable

我对作业有疑问。问题基本上如下: 有两个整数变量,例如A和B.这两个整数都包含数据。 使用真值表,如果有的话,以下IF语句测试等同于:

if (!(A == 60 && B == 40))

我将如何解决这个问题。任何建议将不胜感激。我认为我必须创建一个包含三列的表 - 一个名为A,另一个名为B,第三列名为R​​ESULT(是或否)。

陈述:if (! - 我不确定如何阅读A == 60 && B == 40部分。换句话说, class SignOnTests(BaseTest): def test_login_info(self): #some code 部分基本上告诉我A必须等于60并且在同一时间B必须等于40.然后我感到困惑。任何帮助/建议,将不胜感激。

由于 克里斯

2 个答案:

答案 0 :(得分:0)

这与Java本身无关。是的,您可以通过编写真值表来解决。 !表示逻辑否定,或者您甚至可能将其视为相反。就个人而言,我发现建立特定真值表的所有部分都很有帮助。

   a    |   b    |    !b     |       a & b       |      a & !b        |      !(a & b)
 ----------------------------------------------------------------------------------------
 A = 60 | B = 40 | !(B = 40) | (A = 60 & B = 40) | A = 60 & !(B = 40) | !(A = 60 & B = 40)
   T    |   T    |     F     |         T         |        F           |          F
   T    |   F    |     T     |         F         |        T           |          T
   F    |   T    |     F     |         F         |        F           |          T
   F    |   F    |     T     |         F         |        F           |          T

您应该注意,您的特定示例受De Morgan's Laws之一。

的约束

enter image description here

P is A = 60  
Q is B = 40  
¬ is !  
∧ is &&   
∨ is ||   

所以...

!(A && B)!A || !B

完全相同

真值表告诉你解决这个问题需要知道的其余部分。

答案 1 :(得分:0)

我希望我创建的代码可以帮助您理解,这是一个使用二进制(0和1)数字而不是布尔值显示真值表的简单代码(TRUE,FALSE)

/**
 * Truth table for the logical operators. Using
 * zeros and ones.
 * 
 * @ Samuel Mayol
 */

public class LogicalOpTable {
    public static void main(String[] args) {

        boolean p, q; 
        byte p1, q1, pAndQ, pOrQ, pXORq, notP, pq;

        System.out.println("Using 0s and 1s for the Truth Table:");
        System.out.println("P\tQ\tAND\tOR\tXOR\tNOT"); // using tabs \t

        pq =1;

        switch (pq) { // without break it will execute the whole swich case statements
            case 1 : 
                p = true; q = true;
                p1=(byte) (p?1:0); // The ? : operator in Java
                q1=(byte) (q?1:0); // Short form for Java If statement
                pAndQ=(byte) ((p&q)?1:0); 
                pOrQ=(byte) ((p|q)?1:0);
                pXORq=(byte) ((p^q)?1:0);
                notP= (byte) ((!p)?1:0);

                System.out.print(p1 + "\t" + q1 + "\t");
                System.out.print(pAndQ + "\t" + pOrQ + "\t");
                System.out.println(pXORq + "\t" + notP);
            case 2: 
                p = true; q = false;
                p1=(byte) (p?1:0); // The ? : operator in Java
                q1=(byte) (q?1:0); // Short form for Java If statement
                pAndQ=(byte) ((p&q)?1:0); 
                pOrQ=(byte) ((p|q)?1:0);
                pXORq=(byte) ((p^q)?1:0);
                notP= (byte) ((!p)?1:0);

                System.out.print(p1 + "\t" + q1 + "\t");
                System.out.print(pAndQ + "\t" + pOrQ + "\t");
                System.out.println(pXORq + "\t" + notP);
            case 3: 
                p = false; q = true;
                p1=(byte) (p?1:0); // The ? : operator in Java
                q1=(byte) (q?1:0); // Short form for Java If statement
                pAndQ=(byte) ((p&q)?1:0); 
                pOrQ=(byte) ((p|q)?1:0);
                pXORq=(byte) ((p^q)?1:0);
                notP= (byte) ((!p)?1:0);

                System.out.print(p1 + "\t" + q1 + "\t");
                System.out.print(pAndQ + "\t" + pOrQ + "\t");
                System.out.println(pXORq + "\t" + notP);
            case 4: 
                p = false; q = false;
                p1=(byte) (p?1:0); // The ? : operator in Java
                q1=(byte) (q?1:0); // Short form for Java If statement
                pAndQ=(byte) ((p&q)?1:0); 
                pOrQ=(byte) ((p|q)?1:0);
                pXORq=(byte) ((p^q)?1:0);
                notP= (byte) ((!p)?1:0);

                System.out.print(p1 + "\t" + q1 + "\t");
                System.out.print(pAndQ + "\t" + pOrQ + "\t");
                System.out.println(pXORq + "\t" + notP);
        }
    }
}

运行此代码后的结果是:

Using 0s and 1s for the Truth Table:
P   Q   AND OR  XOR NOT
1   1   1   1   0   0
1   0   0   1   1   0
0   1   0   1   1   1
0   0   0   0   0   1