📅  最后修改于: 2023-12-03 15:42:16.402000             🧑  作者: Mango
本文将介绍 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
以上两种方法均可解决本题,具体使用哪种方法取决于个人代码习惯和实际情况。