用numpy实现与门、与非门、或门、或非门、异或门

利用深度学习中感知机的知识实现以下门电路:与门、与非门、或门、或非门、异或门
代码如下:

'''2020.12.5
用代码实现与门、与非门、或门、或非门、异或门
注:w 和 b 这些参数的设置并非唯一
'''

import numpy as np

# 与门
def AND(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.7
    y = np.sum(x*w)+b
    if y<=0:
        return 0
    else:
        return 1

print("与门:")
print("(0,0)=",AND(0,0))
print("(0,1)=",AND(0,1))
print("(1,0)=",AND(1,0))
print("(1,1)=",AND(1,1))

# 与非门
def NAND(x1,x2):
    x = np.array([x1,x2])
    w = np.array([-0.5,-0.5])
    b = 0.7
    y = np.sum(x*w)+b
    if y<=0:
        return 0
    else:
        return 1

print("与非门:")
print("(0,0)=",NAND(0,0))
print("(0,1)=",NAND(0,1))
print("(1,0)=",NAND(1,0))
print("(1,1)=",NAND(1,1))

# 或门
def OR(x1,x2):
    x = np.array([x1,x2])
    w = np.array([0.5,0.5])
    b = -0.4
    y = np.sum(x*w)+b
    if y<=0:
        return 0
    else:
        return 1

print("或门:")
print("(0,0)=",OR(0,0))
print("(0,1)=",OR(0,1))
print("(1,0)=",OR(1,0))
print("(1,1)=",OR(1,1))

# 或非门
def NOR(x1,x2):
    x = np.array([x1,x2])
    w = np.array([-0.5,-0.5])
    b = 0.4
    y = np.sum(x*w)+b
    if y<=0:
        return 0
    else:
        return 1

print("或非门:")
print("(0,0)=",NOR(0,0))
print("(0,1)=",NOR(0,1))
print("(1,0)=",NOR(1,0))
print("(1,1)=",NOR(1,1))

# 异或门
def XOR(x1,x2):
    s1 = NAND(x1,x2)
    s2 = OR(x1,x2)
    y = AND(s1,s2)
    return y

print("异或门:")
print("(0,0)=",XOR(0,0))
print("(0,1)=",XOR(0,1))
print("(1,0)=",XOR(1,0))
print("(1,1)=",XOR(1,1))
### 回答1: 异或门的 C 语言代码表达如下: ```c #include <stdio.h> int main() { int a, b; printf("请输入两个数字:\n"); scanf("%d %d", &a, &b); if (a != b) { printf("1\n"); } else { printf("0\n"); } return 0; } ``` 这段代码实现异或门的逻辑功能,当输入的两个数字不相同时,输出 1,否则输出 0。 ### 回答2: 异或门是一种基本的逻辑,用于逻辑运算。在C语言中,可以使用条件语句if语句来实现异或门代码。 首先,我们需要定义两个输入变量A和B,以及一个输出变量result。这三个变量可以使用布尔类型(bool)来表示,也可以使用整数类型(int)来表示(0代表False,1代表True)。 接下来,我们使用if语句来判断异或门的逻辑关系。如果A和B的值相同,则结果为False(0);如果A和B的值不同,则结果为True(1)。 下面是一个使用if语句实现异或门的示例代码: ```c #include <stdio.h> int main() { int A, B; int result; printf("请输入两个整数(0或1)作为输入:\n"); scanf("%d %d", &A, &B); if (A == B) { result = 0; } else { result = 1; } printf("异或门的输出结果为:%d\n", result); return 0; } ``` 在这个示例代码中,我们使用了printf函数来输出提示信息和结果,使用了scanf函数来接收用户输入的两个整数。 根据输入的值,通过if语句判断逻辑关系,并将结果赋值给result变量。最后,通过printf函数输出结果。 以上就是使用条件语句if语句来表达C语言中异或门的示例代码。当然,实现异或门的方法还有很多种,这只是其中一种较为常见的方法。 ### 回答3: C语言中实现异或门代码如下: ```c #include <stdio.h> int xor_gate(int a, int b) { return (a && !b) || (!a && b); } int main() { int input1, input2, output; printf("请输入两个值(0 或 1):\n"); scanf("%d%d", &input1, &input2); output = xor_gate(input1, input2); printf("异或门的输出是:%d\n", output); return 0; } ``` 首先,在代码中定义了一个名为`xor_gate`的函数,该函数接受两个整型参数`a`和`b`,并返回它们的异或结果。函数内部使用逻辑运算符`&&`和`!`来实现异或操作。如果`a`和`b`中有一个为真,而另一个为假,则返回真;否则,返回假。 接下来,在`main`函数中,通过用户输入获取两个输入值`input1`和`input2`。然后,调用`xor_gate`函数,并将返回的结果赋值给`output`变量。 最后,程序会输出异或门的输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值