📜  门| GATE-CS-2006 |问题12(1)

📅  最后修改于: 2023-12-03 15:42:16.402000             🧑  作者: Mango

门| GATE-CS-2006 |问题12

本文将介绍 GATE-CS-2006 的问题12,该问题涉及到关于真值表的一个程序。

问题描述

给定一个真值表,每一行都是一种输入组合,输出为末端。现在要对这个程序进行操作,输出这个真值表中决策为1的行的个数。

真值表可以用二维数组的形式表示,其中每一行都是包含输入和输出值的一个元组。

truth_table = [
    (0, 0, 0),
    (0, 1, 0),
    (1, 0, 0),
    (1, 1, 1)
]

其中,truth_table[0] 表示第一行元组 (0, 0, 0),即输入为 (0, 0),输出为 0

你需要完成的函数如下:

def count_rows(truth_table):
    """
    给定一个真值表,返回其中决策为1的行的个数。
    :param truth_table: 二维数组,表示真值表。
    :return: int,决策为1的行数。
    """
    pass
解决方案

由于本题中需求比较简单,可以通过以下两种方法轻松完成。

解法一

使用列表推导式,筛选出决策为1的行,并返回其个数。

def count_rows(truth_table):
    return len([row for row in truth_table if row[-1] == 1])
解法二

遍历真值表的每一行,若该行决策为1,则计数器加1。

def count_rows(truth_table):
    count = 0
    for row in truth_table:
        if row[-1] == 1:
            count += 1
    return count
结论

以上两种方法均可解决本题,具体使用哪种方法取决于个人代码习惯和实际情况。