当前位置: 首页 > 知识库问答 >
问题:

真值表所有可能的组合

广宏远
2023-03-14
public class truthTables {

  public static void main(String[] args) {

    boolean t = true;

    boolean f = false;

    boolean[] p = {f, f, f, f, t, t, t, t};
    boolean[] q = {f, f, t, t, f, f, f, f};
    boolean[] r = {f, t, f, t, f, t, f, t};
    boolean[] proposition = new boolean[8];
    int tableNumber = 1;

    while (tableNumber <= 256) {

      System.out.println("Table " + tableNumber + " ");
      System.out.println("P " + " q " + " r " + " proposition ");
      System.out.println("________________");

      int i = 0;

      while (i <= 7) {
        i = i;

        if (proposition[i] = true) {

          System.out.println(p[i] + "  " + q[i] + "  " + r[i] + " " + proposition[i]);
        }

        if (proposition[i] = false) {
          System.out.println(p[i] + "  " + q[i] + "  " + r[i] + " " + proposition[i]);
        }

        i = i + 1;
      }

      tableNumber = tableNumber + 1;
    }
  }
}

共有1个答案

居星阑
2023-03-14

我必须创建长度为8的数组中所有可能的组合

您可以通过检查tableNumber-th表的位来创建它:

int b = 0;            // "Bit index", the element of proposition you are going to set.
int t = tableNumber;  // Copy of tableNumber that you can update.

while (t != 0) {
  proposition[b] = (t & 1) != 0;  // Is the least significant bit 1?

  b++;       // Increase the bit index.
  t >>>= 1;  // Right-shift by 1, chopping off the least significant bit.
}

您也可以将其写成for循环:

for (int b = 0, t = tableNumber; t != 0; t >>>=1, b++) {
  proposition[b] = (t & 1) != 0;
}
 类似资料:
  • 我有下表: 对于两组中的每一组,我想返回所有可能的值组合。对于组1,例如,可能的组合是(A, B)、(A, C)、(A, D)、(B, C)、(B, D)、(C, D)、(A, B, C)、(B, D, C)、(C, A, B)。类似地,对于组2,它是(A, B)、(A, C)、(B, C)[备注:我不想考虑(1)只有一个值的组合,(2)所有值的组合和(3)没有值的组合。因此,对于n个不同的值,我

  • 问题内容: 如果我做对了,确定何时编译源代码。 为了更好地支持多种操作系统,我对可能的功能很感兴趣。 当然,由于Go是开源的,因此可能存在无限的可能性。因此,我真正想要的是一个“通用列表”。 已知值为: 或或?我知道其中至少必须存在一个。 问题答案: 请注意,这些值在中定义。 随着围棋1.5(Q3 2015年),将成为 很多 更加完整。 见提交1eebb91由Minux马() :为 所有 通用架构

  • 我正在组装一个java小程序,使任务在工作中更快、更高效。 用户定义项目列表需要拆分成的三个组的大小。列表中的每个项目根据它被放入三个组中的哪个组具有不同的值。小程序需要显示哪个组合的总价值最高。 示例:带有列的二维整数数组;项目编号、第1组中的值、第2组中的值和第3组中的值。 这样,用户定义组1有3个插槽,组2有3个插槽,组3有2个插槽。 小程序应不按特定顺序显示以下解决方案 我可以管理一种效率

  • 问题内容: 我有一个项目{a,b,c,d}的列表,当我需要生成所有可能的组合时, 您可以选择任意数量的项目 顺序不重要(ab = ba) 空集不被考虑 如果我们抓住可能性,那就应该是 我使用了以下递归方法: 当数组大时,有没有更有效的方法? 问题答案: 将组合视为一个二进制序列,如果所有4个都存在,则得到1111,如果缺少第一个字母,则得到0111,依此类推。对于n个字母,我们将得到2 ^ n -

  • 我有亲戚 并想在PostgreSQL中加入它 所以我得到了所有可能的替换组合(即替换或多或少的笛卡尔积)。所以组1没有更新,组2只有B2,组3只有D2,组4都有B2和D2。 结尾应该是这样的,但应该对更多人开放(就像D1的额外D3) 编辑: 另一个可能的替换表可以是 可能会导致6组(我希望我没有忘记一个案例) 如果你有三个替代品,比如 这将导致8组。到目前为止,我所尝试的并没有真正的帮助: 我很高

  • 问题内容: 在Python中,我有一个n个列表的列表,每个列表具有可变数量的元素。如何创建包含所有可能排列的单个列表: 例如 我想要 注意,我事先不知道n。我以为itertools.product是正确的方法,但它需要我提前知道参数的数量 问题答案: 您不需要事先知道使用