You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从3位加法器真值表函数输出生成二维数组

如何将3位加法器真值表函数输出转为二维数组

现有一个生成3位加法器真值表的Python函数,但它仅将结果打印输出,无法直接得到二维数组结构的结果。原函数代码如下:

import numpy as np
def truthTable(inputs=3):
    if inputs == 3:
        print("  A B C S Cout ")
        for a in range(0, 2):
            for b in range(0, 2):
                for c in range(0, 2):
                        cout = eval("((a & b) | (a & c) | (b & c))")
                        s = eval("(a ^ b ^ c)")
                        print(str(a) + "," + str(b) + "," + str(c) + "," + str(s) + "," + str(cout))

truthTable()

修改方案:让函数返回二维数组结构

核心思路是创建一个容器(列表)存储每一行的真值表数据,最后返回这个容器;如果需要numpy数组,再将列表转换为numpy数组即可。同时可以去掉不必要的eval调用,直接使用位运算提升效率和安全性。

方案1:返回普通Python二维列表

def truthTable(inputs=3):
    truth_table = []
    if inputs == 3:
        for a in range(2):
            for b in range(2):
                for c in range(2):
                    # 直接计算进位和和值,无需eval
                    cout = (a & b) | (a & c) | (b & c)
                    s = a ^ b ^ c
                    # 将当前行数据加入列表
                    truth_table.append([a, b, c, s, cout])
    return truth_table

# 使用示例
table = truthTable()
print(table)

执行后table就是一个二维列表,每个子元素对应真值表的一行,输出如下:

[[0, 0, 0, 0, 0], [0, 0, 1, 1, 0], [0, 1, 0, 1, 0], [0, 1, 1, 0, 1], [1, 0, 0, 1, 0], [1, 0, 1, 0, 1], [1, 1, 0, 0, 1], [1, 1, 1, 1, 1]]

方案2:返回numpy二维数组

如果需要numpy格式的二维数组,只需在返回时将列表转换为np.array即可:

import numpy as np

def truthTable(inputs=3):
    truth_table = []
    if inputs == 3:
        for a in range(2):
            for b in range(2):
                for c in range(2):
                    cout = (a & b) | (a & c) | (b & c)
                    s = a ^ b ^ c
                    truth_table.append([a, b, c, s, cout])
    return np.array(truth_table)

# 使用示例
table = truthTable()
print(table)

执行后得到的table是numpy数组,输出如下:

[[0 0 0 0 0]
 [0 0 1 1 0]
 [0 1 0 1 0]
 [0 1 1 0 1]
 [1 0 0 1 0]
 [1 0 1 0 1]
 [1 1 0 0 1]
 [1 1 1 1 1]]

内容的提问来源于stack exchange,提问作者Rupak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:36:53