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]]
print(len(X[0]))
y = [1,-1,-1,-1]
weights,bias = hebbian_learning(X, y)
print("Hebbian Final Weights:", weights)
print("Hebbian Final Bias ",bias)
CmRlZiBoZWJiaWFuX2xlYXJuaW5nKFgsIHkpOgoKICAgIHdlaWdodHMgPSBbMCBmb3IgXyBpbiByYW5nZShsZW4oWFswXSkpXQogICAgYmlhcyA9IDAKCiAgICBmb3IgaSBpbiByYW5nZShsZW4oWCkpOgogICAgICAgIGZvciBqIGluIHJhbmdlKGxlbihYWzBdKSk6CiAgICAgICAgICAgIHdlaWdodHNbal0gKz0geVtpXSAqIFhbaV1bal0KICAgICAgICBiaWFzICs9IHlbaV0KCiAgICByZXR1cm4gd2VpZ2h0cyxiaWFzCgpYID0gW1sxLDFdLFsxLC0xXSxbLTEsMV0sWy0xLC0xXV0KcHJpbnQobGVuKFhbMF0pKQp5ID0gWzEsLTEsLTEsLTFdCndlaWdodHMsYmlhcyA9IGhlYmJpYW5fbGVhcm5pbmcoWCwgeSkKcHJpbnQoIkhlYmJpYW4gRmluYWwgV2VpZ2h0czoiLCB3ZWlnaHRzKQpwcmludCgiSGViYmlhbiBGaW5hbCBCaWFzICIsYmlhcykKCgo=