def hebbian_learning(X, y):
weights = [0 for _ in range(len(X[0]))]
bias = 0
for i in range(len(X)):
for j in range(len(X[0])):
weights[j] += y[i] * X[i][j]
bias += y[i]
return weights,bias
X = [[1,1],[1,-1],[-1,1],[-1,-1]]
y = [1,-1,-1,-1]
weights,bias = hebbian_learning(X, y)
print("Hebbian Final Weights:", weights)
print("Hebbian Final Bias ",bias)
CmRlZiBoZWJiaWFuX2xlYXJuaW5nKFgsIHkpOgoKICAgIHdlaWdodHMgPSBbMCBmb3IgXyBpbiByYW5nZShsZW4oWFswXSkpXQogICAgYmlhcyA9IDAKCiAgICBmb3IgaSBpbiByYW5nZShsZW4oWCkpOgogICAgICAgIGZvciBqIGluIHJhbmdlKGxlbihYWzBdKSk6CiAgICAgICAgICAgIHdlaWdodHNbal0gKz0geVtpXSAqIFhbaV1bal0KICAgICAgICBiaWFzICs9IHlbaV0KCiAgICByZXR1cm4gd2VpZ2h0cyxiaWFzCgpYID0gW1sxLDFdLFsxLC0xXSxbLTEsMV0sWy0xLC0xXV0KCnkgPSBbMSwtMSwtMSwtMV0Kd2VpZ2h0cyxiaWFzID0gaGViYmlhbl9sZWFybmluZyhYLCB5KQpwcmludCgiSGViYmlhbiBGaW5hbCBXZWlnaHRzOiIsIHdlaWdodHMpCnByaW50KCJIZWJiaWFuIEZpbmFsIEJpYXMgIixiaWFzKQ==