namespace std;
class Perceptron {
public:
int AND(int x1, int x2); //与门
int NAND(int x1, int x2);//与非门...1 : 0;
}
int Perceptron::NAND(int x1, int x2) {
//与非门:任一输入为 0 时, 则输出不为 0
double w1 = -0.5, w2 = -...int res = AND(s1, s2);
return res;
}
void test(int (Perceptron::*p)(int x1, int x2)) {
//测试感知机是否正常...1
1
1
0
或门
0
1
1
1
异或门
0
1
1
0
在感知机的可视化中, 与门, 与非门, 或门的表达式图形经过分割为线性空间, 所以他们的感知机实现结构是一样的, 只是其中的权重与阈值不同而已...但是异或门却是非线性空间, 无法像与门, 与非门, 或门一样使用单层感知机实现, 但我们可以通过感知机叠加, 使用多层感知机实现(如上述代码所示) .
异或门逻辑电路图 :
?
毕。