Giải pháp của tôi
import numpy as np
def layer_1_z(x, w1, b1):
return 1 / w1 * x + b1
def layer_2(x, w1, b1, w2, b2):
y1 = layer_1_z(x, w1, b1)
y2 = y1 - np.floor(y1)
return w2 * y2 + b2
def layer_2_activation(x, w1, b1, w2, b2):
y2 = layer_2(x, w1, b1, w2, b2)
# return 1 / (1 + np.exp(-y2))
return (y2 > 0) * 1
def loss(param):
w1, b1, w2, b2 = param
x = np.arange(0, 1000, 1)
y_hat = layer_2_activation(x, w1, b1, w2, b2)
y_true = (x % 2 > 0) * 1
return sum(np.square(y_hat - y_true))
# %%
from sko.GA import GA
ga = GA(func=loss, n_dim=4, size_pop=50, max_iter=100, lb=[1, 0, 1, 0], ub=[32, 1, 2, 1], precision=1)
best_x, best_y = ga.run()
print('best_x:', best_x, '\n', 'best_y:', best_y)
for x in range(1001, 1200):
y_hat = layer_2_activation(x, *best_x)
print('input:{},divide by 2:{}'.format(x, y_hat == 0))
đầu vào: 1001, chia cho 2: Nhập sai: 1002, chia cho 2: Nhập đúng: 1003, chia cho 2: Nhập sai: 1004, chia cho 2: Nhập đúng: 1005, chia cho 2: Nhập sai: 1006, chia cho 2: Nhập đúng: 1007, chia cho 2: Nhập sai: 1008, chia cho 2: Nhập đúng: 1009, chia cho 2: Nhập sai: 1010, chia cho 2: Nhập đúng: 1011, chia cho 2: Nhập sai : 1012, chia cho 2: Nhập đúng: 1013, chia cho 2: Nhập sai: 1014, chia cho 2: Nhập đúng: 1015, chia cho 2: Nhập sai: 1016, chia cho 2: Nhập đúng: 1017, chia cho 2: Nhập sai: 1018, chia cho 2: Nhập đúng: 1019, chia cho 2: Nhập sai: 1020, chia cho 2: Nhập đúng: 1021, chia cho 2: Nhập sai: 1022, chia cho 2: Nhập đúng: 1023, chia cho 2: Nhập sai: 1024, chia cho 2: Nhập đúng: 1025, chia cho 2: Nhập sai: 1026, chia cho 2: Nhập đúng: 1027, chia cho 2: Nhập sai: 1028, chia cho 2 : Nhập đúng: 1029, chia cho 2:Đầu vào sai: 1030, chia cho 2: Đầu vào đúng: 1031, chia cho 2: Đầu vào sai: 1032, chia cho 2: Đầu vào đúng: 1033, chia cho 2: Đầu vào sai: 1034, chia cho 2: Đầu vào đúng: 1035, chia cho 2: Nhập sai: 1036, chia cho 2: Nhập đúng: 1037, chia cho 2: Nhập sai: 1038, chia cho 2: Nhập đúng: 1039, chia cho 2: Nhập sai: 1040, chia cho 2: Đúng đầu vào: 1041, chia cho 2: Nhập sai: 1042, chia cho 2: Nhập đúng: 1043, chia cho 2: Nhập sai: 1044, chia cho 2: Nhập đúng: 1045, chia cho 2: Nhập sai: 1046, chia cho 2: Nhập đúng: 1047, chia cho 2: Nhập sai: 1048, chia cho 2: Nhập đúng: 1049, chia cho 2: Nhập sai: 1050, chia cho 2: Nhập đúng: 1051, chia cho 2: Nhập sai : 1052, chia cho 2: Nhập đúng: 1053, chia cho 2: Nhập sai: 1054, chia cho 2: Nhập đúng: 1055, chia cho 2: Nhập sai: 1056, chia cho 2: Nhập đúng: 1057, chia cho 2: Nhập sai: 1058, chia cho 2:Đầu vào đúng: 1059, chia cho 2: Đầu vào sai: 1060, chia cho 2: Đầu vào đúng: 1061, chia cho 2: Đầu vào sai: 1062, chia cho 2: Đầu vào đúng: 1063, chia cho 2: Đầu vào sai: 1064, chia cho 2: Nhập đúng: 1065, chia cho 2: Nhập sai: 1066, chia cho 2: Nhập đúng: 1067, chia cho 2: Nhập sai: 1068, chia cho 2: Nhập đúng: 1069, chia cho 2: Sai đầu vào: 1070, chia cho 2: Đầu vào đúng: 1071, chia cho 2: Đầu vào sai: 1072, chia cho 2: Đầu vào đúng: 1073, chia cho 2: Đầu vào sai: 1074, chia cho 2: Đầu vào đúng: 1075, chia cho 2: Nhập sai: 1076, chia cho 2: Nhập đúng: 1077, chia cho 2: Nhập sai: 1078, chia cho 2: Nhập đúng: 1079, chia cho 2: Nhập sai: 1080, chia cho 2: Nhập đúng : 1081, chia cho 2: Nhập sai: 1082, chia cho 2: Nhập đúng: 1083, chia cho 2: Nhập sai: 1084, chia cho 2: Nhập đúng: 1085, chia cho 2: Nhập sai: 1086, chia cho 2: Nhập đúng: 1087, chia cho 2:Nhập sai: 1088, chia cho 2: Nhập đúng: 1089, chia cho 2: Nhập sai: 1090, chia cho 2: Nhập đúng: 1091, chia cho 2: Nhập sai: 1092, chia cho 2: Nhập đúng: 1093, chia cho 2: Nhập sai: 1094, chia cho 2: Nhập đúng: 1095, chia cho 2: Nhập sai: 1096, chia cho 2: Nhập đúng: 1097, chia cho 2: Nhập sai: 1098, chia cho 2: Đúng đầu vào: 1099, chia cho 2: Nhập sai: 1100, chia cho 2: Nhập đúng: 1101, chia cho 2: Nhập sai: 1102, chia cho 2: Nhập đúng: 1103, chia cho 2: Nhập sai: 1104, chia cho 2: Đầu vào đúng: 1105, chia cho 2: Đầu vào sai: 1106, chia cho 2: Đầu vào đúng: 1107, chia cho 2: Đầu vào sai: 1108, chia cho 2: Đầu vào đúng: 1109, chia cho 2: Đầu vào sai : 1110, chia cho 2: Nhập đúng: 1111, chia cho 2: Nhập sai: 1112, chia cho 2: Nhập đúng: 1113, chia cho 2: Nhập sai: 1114, chia cho 2: Nhập đúng: 1115, chia cho 2: Nhập sai: 1116, chia cho 2:Đầu vào đúng: 1117, chia cho 2: Đầu vào sai: 1118, chia cho 2: Đầu vào đúng: 1119, chia cho 2: Đầu vào sai: 1120, chia cho 2: Đầu vào đúng: 1121, chia cho 2: Đầu vào sai: 1122, chia cho 2: Nhập đúng: 1123, chia cho 2: Nhập sai: 1124, chia cho 2: Nhập đúng: 1125, chia cho 2: Nhập sai: 1126, chia cho 2: Nhập đúng: 1127, chia cho 2: Sai đầu vào: 1128, chia cho 2: Đầu vào đúng: 1129, chia cho 2: Nhập sai: 1130, chia cho 2: Nhập đúng: 1131, chia cho 2: Nhập sai: 1132, chia cho 2: Nhập đúng: 1133, chia cho 2: Nhập sai: 1134, chia cho 2: Nhập đúng: 1135, chia cho 2: Nhập sai: 1136, chia cho 2: Nhập đúng: 1137, chia cho 2: Nhập sai: 1138, chia cho 2: Nhập đúng : 1139, chia cho 2: Nhập sai: 1140, chia cho 2: Nhập đúng: 1141, chia cho 2: Nhập sai: 1142, chia cho 2: Nhập đúng: 1143, chia cho 2: Nhập sai: 1144, chia cho 2: Nhập đúng: 1145, chia cho 2:Đầu vào sai: 1146, chia cho 2: Đầu vào đúng: 1147, chia cho 2: Đầu vào sai: 1148, chia cho 2: Đầu vào đúng: 1149, chia cho 2: Đầu vào sai: 1150, chia cho 2: Đầu vào đúng: 1151, chia cho 2: Nhập sai: 1152, chia cho 2: Nhập đúng: 1153, chia cho 2: Nhập sai: 1154, chia cho 2: Nhập đúng: 1155, chia cho 2: Nhập sai: 1156, chia cho 2: Đúng đầu vào: 1157, chia cho 2: Nhập sai: 1158, chia cho 2: Nhập đúng: 1159, chia cho 2: Nhập sai: 1160, chia cho 2: Nhập đúng: 1161, chia cho 2: Nhập sai: 1162, chia cho 2: Nhập đúng: 1163, chia cho 2: Nhập sai: 1164, chia cho 2: Nhập đúng: 1165, chia cho 2: Nhập sai: 1166, chia cho 2: Nhập đúng: 1167, chia cho 2: Nhập sai : 1168, chia cho 2: Nhập đúng: 1169, chia cho 2: Nhập sai: 1170, chia cho 2: Nhập đúng: 1171, chia cho 2: Nhập sai: 1172, chia cho 2: Nhập đúng: 1173, chia cho 2: Nhập sai: 1174, chia cho 2:Đầu vào đúng: 1175, chia cho 2: Đầu vào sai: 1176, chia cho 2: Đầu vào đúng: 1177, chia cho 2: Đầu vào sai: 1178, chia cho 2: Đầu vào đúng: 1179, chia cho 2: Đầu vào sai: 1180, chia cho 2: Nhập đúng: 1181, chia cho 2: Nhập sai: 1182, chia cho 2: Nhập đúng: 1183, chia cho 2: Nhập sai: 1184, chia cho 2: Nhập đúng: 1185, chia cho 2: Sai đầu vào: 1186, chia cho 2: Đầu vào đúng: 1187, chia cho 2: Nhập sai: 1188, chia cho 2: Nhập đúng: 1189, chia cho 2: Nhập sai: 1190, chia cho 2: Nhập đúng: 1191, chia cho 2: Nhập sai: 1192, chia cho 2: Nhập đúng: 1193, chia cho 2: Nhập sai: 1194, chia cho 2: Nhập đúng: 1195, chia cho 2: Nhập sai: 1196, chia cho 2: Nhập đúng : 1197, chia cho 2: Nhập sai: 1198, chia cho 2: Nhập đúng: 1199, chia cho 2: SaiĐầu vào đúng: 1179, chia cho 2: Đầu vào sai: 1180, chia cho 2: Đầu vào đúng: 1181, chia cho 2: Đầu vào sai: 1182, chia cho 2: Đầu vào đúng: 1183, chia cho 2: Đầu vào sai: 1184, chia cho 2: Nhập đúng: 1185, chia cho 2: Nhập sai: 1186, chia cho 2: Nhập đúng: 1187, chia cho 2: Nhập sai: 1188, chia cho 2: Nhập đúng: 1189, chia cho 2: Sai đầu vào: 1190, chia cho 2: Đầu vào đúng: 1191, chia cho 2: Nhập sai: 1192, chia cho 2: Nhập đúng: 1193, chia cho 2: Nhập sai: 1194, chia cho 2: Nhập đúng: 1195, chia cho 2: Nhập sai: 1196, chia cho 2: Nhập đúng: 1197, chia cho 2: Nhập sai: 1198, chia cho 2: Nhập đúng: 1199, chia cho 2: SaiĐầu vào đúng: 1179, chia cho 2: Đầu vào sai: 1180, chia cho 2: Đầu vào đúng: 1181, chia cho 2: Đầu vào sai: 1182, chia cho 2: Đầu vào đúng: 1183, chia cho 2: Đầu vào sai: 1184, chia cho 2: Nhập đúng: 1185, chia cho 2: Nhập sai: 1186, chia cho 2: Nhập đúng: 1187, chia cho 2: Nhập sai: 1188, chia cho 2: Nhập đúng: 1189, chia cho 2: Sai đầu vào: 1190, chia cho 2: Đầu vào đúng: 1191, chia cho 2: Nhập sai: 1192, chia cho 2: Nhập đúng: 1193, chia cho 2: Nhập sai: 1194, chia cho 2: Nhập đúng: 1195, chia cho 2: Nhập sai: 1196, chia cho 2: Nhập đúng: 1197, chia cho 2: Nhập sai: 1198, chia cho 2: Nhập đúng: 1199, chia cho 2: SaiĐầu vào đúng: 1187, chia cho 2: Nhập sai: 1188, chia cho 2: Nhập đúng: 1189, chia cho 2: Nhập sai: 1190, chia cho 2: Nhập đúng: 1191, chia cho 2: Nhập sai: 1192, chia cho 2: Nhập đúng: 1193, chia cho 2: Nhập sai: 1194, chia cho 2: Nhập đúng: 1195, chia cho 2: Nhập sai: 1196, chia cho 2: Nhập đúng: 1197, chia cho 2: Sai đầu vào: 1198, chia cho 2: Đầu vào đúng: 1199, chia cho 2: SaiĐầu vào đúng: 1187, chia cho 2: Nhập sai: 1188, chia cho 2: Nhập đúng: 1189, chia cho 2: Nhập sai: 1190, chia cho 2: Nhập đúng: 1191, chia cho 2: Nhập sai: 1192, chia cho 2: Nhập đúng: 1193, chia cho 2: Nhập sai: 1194, chia cho 2: Nhập đúng: 1195, chia cho 2: Nhập sai: 1196, chia cho 2: Nhập đúng: 1197, chia cho 2: Sai đầu vào: 1198, chia cho 2: Đầu vào đúng: 1199, chia cho 2: Sai
Hơn nữa, chia cho các số khác (giả sử, 7) cũng tốt:
import numpy as np
def layer_1_z(x, w1, b1):
return 1 / w1 * x + b1
def layer_2(x, w1, b1, w2, b2):
y1 = layer_1_z(x, w1, b1)
y2 = y1 - np.floor(y1)
return w2 * y2 + b2
def layer_2_activation(x, w1, b1, w2, b2):
y2 = layer_2(x, w1, b1, w2, b2)
# return 1 / (1 + np.exp(-y2))
return (y2 > 0) * 1
def loss(param):
w1, b1, w2, b2 = param
x = np.arange(0, 1000, 1)
y_hat = layer_2_activation(x, w1, b1, w2, b2)
y_true = (x % 7 > 0) * 1
return sum(np.square(y_hat - y_true))
# %%
from sko.GA import GA
ga = GA(func=loss, n_dim=4, size_pop=50, max_iter=100, lb=[1, 0, 1, 0], ub=[32, 1, 2, 1], precision=1)
best_x, best_y = ga.run()
print('best_x:', best_x, '\n', 'best_y:', best_y)
for x in range(1001, 1200):
y_hat = layer_2_activation(x, *best_x)
print('input:{},divide by 7:{}'.format(x, y_hat == 0))
đầu vào: 1001, chia cho 7: Đầu vào đúng: 1002, chia cho 7: Nhập sai: 1003, chia cho 7: Nhập sai: 1004, chia cho 7: Nhập sai: 1005, chia cho 7: Nhập sai: 1006, chia cho 7: Nhập sai: 1007, chia cho 7: Nhập sai: 1008, chia cho 7: Nhập đúng: 1009, chia cho 7: Nhập sai: 1010, chia cho 7: Nhập sai: 1011, chia cho 7: Nhập sai : 1012, chia cho 7: Nhập sai: 1013, chia cho 7: Nhập sai: 1014, chia cho 7: Nhập sai: 1015, chia cho 7: Nhập đúng: 1016, chia cho 7: Nhập sai: 1017, chia cho 7: Nhập sai: 1018, chia cho 7: Nhập sai: 1019, chia cho 7: Nhập sai: 1020, chia cho 7: Nhập sai: 1021, chia cho 7: Nhập sai: 1022, chia cho 7: Nhập đúng: 1023, chia cho 7: Nhập sai: 1024, chia cho 7: Nhập sai: 1025, chia cho 7: Nhập sai: 1026, chia cho 7: Nhập sai: 1027, chia cho 7: Nhập sai: 1028, chia cho 7 : Nhập sai: 1029, chia cho 7:Đầu vào đúng: 1030, chia cho 7: Nhập sai: 1031, chia cho 7: Nhập sai: 1032, chia cho 7: Nhập sai: 1033, chia cho 7: Nhập sai: 1034, chia cho 7: Nhập sai: 1035, chia cho 7: Nhập sai: 1036, chia cho 7: Nhập đúng: 1037, chia cho 7: Nhập sai: 1038, chia cho 7: Nhập sai: 1039, chia cho 7: Nhập sai: 1040, chia cho 7: Sai đầu vào: 1041, chia cho 7: Nhập sai: 1042, chia cho 7: Nhập sai: 1043, chia cho 7: Nhập đúng: 1044, chia cho 7: Nhập sai: 1045, chia cho 7: Nhập sai: 1046, chia cho 7: Nhập sai: 1047, chia cho 7: Nhập sai: 1048, chia cho 7: Nhập sai: 1049, chia cho 7: Nhập sai: 1050, chia cho 7: Nhập đúng: 1051, chia cho 7: Nhập sai : 1052, chia cho 7: Nhập sai: 1053, chia cho 7: Nhập sai: 1054, chia cho 7: Nhập sai: 1055, chia cho 7: Nhập sai: 1056, chia cho 7: Nhập sai: 1057, chia cho 7: Nhập đúng: 1058,chia cho 7: Nhập sai: 1059, chia cho 7: Nhập sai: 1060, chia cho 7: Nhập sai: 1061, chia cho 7: Nhập sai: 1062, chia cho 7: Nhập sai: 1063, chia cho 7: Sai đầu vào: 1064, chia cho 7: Đầu vào đúng: 1065, chia cho 7: Nhập sai: 1066, chia cho 7: Nhập sai: 1067, chia cho 7: Nhập sai: 1068, chia cho 7: Nhập sai: 1069, chia cho 7: Nhập sai: 1070, chia cho 7: Nhập sai: 1071, chia cho 7: Nhập đúng: 1072, chia cho 7: Nhập sai: 1073, chia cho 7: Nhập sai: 1074, chia cho 7: Nhập sai : 1075, chia cho 7: Nhập sai: 1076, chia cho 7: Nhập sai: 1077, chia cho 7: Nhập sai: 1078, chia cho 7: Nhập đúng: 1079, chia cho 7: Nhập sai: 1080, chia cho 7: Nhập sai: 1081, chia cho 7: Nhập sai: 1082, chia cho 7: Nhập sai: 1083, chia cho 7: Nhập sai: 1084, chia cho 7: Nhập sai: 1085, chia cho 7: Nhập đúng: 1086, chia cho 7:Nhập sai: 1087, chia cho 7: Nhập sai: 1088, chia cho 7: Nhập sai: 1089, chia cho 7: Nhập sai: 1090, chia cho 7: Nhập sai: 1091, chia cho 7: Nhập sai: 1092, chia cho 7: Nhập đúng: 1093, chia cho 7: Nhập sai: 1094, chia cho 7: Nhập sai: 1095, chia cho 7: Nhập sai: 1096, chia cho 7: Nhập sai: 1097, chia cho 7: Sai đầu vào: 1098, chia cho 7: Nhập sai: 1099, chia cho 7: Nhập đúng: 1100, chia cho 7: Nhập sai: 1101, chia cho 7: Nhập sai: 1102, chia cho 7: Nhập sai: 1103, chia cho 7: Nhập sai: 1104, chia cho 7: Nhập sai: 1105, chia cho 7: Nhập sai: 1106, chia cho 7: Nhập đúng: 1107, chia cho 7: Nhập sai: 1108, chia cho 7: Nhập sai : 1109, chia cho 7: Nhập sai: 1110, chia cho 7: Nhập sai: 1111, chia cho 7: Nhập sai: 1112, chia cho 7: Nhập sai: 1113, chia cho 7: Nhập đúng: 1114, chia cho 7: Nhập sai: 1115,chia cho 7: Nhập sai: 1116, chia cho 7: Nhập sai: 1117, chia cho 7: Nhập sai: 1118, chia cho 7: Nhập sai: 1119, chia cho 7: Nhập sai: 1120, chia cho 7: Đúng đầu vào: 1121, chia cho 7: Nhập sai: 1122, chia cho 7: Nhập sai: 1123, chia cho 7: Nhập sai: 1124, chia cho 7: Nhập sai: 1125, chia cho 7: Nhập sai: 1126, chia cho 7: Nhập sai: 1127, chia cho 7: Nhập đúng: 1128, chia cho 7: Nhập sai: 1129, chia cho 7: Nhập sai: 1130, chia cho 7: Nhập sai: 1131, chia cho 7: Nhập sai : 1132, chia cho 7: Nhập sai: 1133, chia cho 7: Nhập sai: 1134, chia cho 7: Nhập đúng: 1135, chia cho 7: Nhập sai: 1136, chia cho 7: Nhập sai: 1137, chia cho 7: Nhập sai: 1138, chia cho 7: Nhập sai: 1139, chia cho 7: Nhập sai: 1140, chia cho 7: Nhập sai: 1141, chia cho 7: Nhập đúng: 1142, chia cho 7: Nhập sai: 1143, chia cho 7: Nhập sai:1144, chia cho 7: Nhập sai: 1145, chia cho 7: Nhập sai: 1146, chia cho 7: Nhập sai: 1147, chia cho 7: Nhập sai: 1148, chia cho 7: Nhập đúng: 1149, chia cho 7 : Nhập sai: 1150, chia cho 7: Nhập sai: 1151, chia cho 7: Nhập sai: 1152, chia cho 7: Nhập sai: 1153, chia cho 7: Nhập sai: 1154, chia cho 7: Nhập sai: 1155 , chia cho 7: Nhập đúng: 1156, chia cho 7: Nhập sai: 1157, chia cho 7: Nhập sai: 1158, chia cho 7: Nhập sai: 1159, chia cho 7: Nhập sai: 1160, chia cho 7: Nhập sai: 1161, chia cho 7: Nhập sai: 1162, chia cho 7: Nhập đúng: 1163, chia cho 7: Nhập sai: 1164, chia cho 7: Nhập sai: 1165, chia cho 7: Nhập sai: 1166, chia cho 7: Nhập sai: 1167, chia cho 7: Nhập sai: 1168, chia cho 7: Nhập sai: 1169, chia cho 7: Nhập đúng: 1170, chia cho 7: Nhập sai: 1171, chia cho 7: Sai đầu vào: 1172, chia cho 7:Đầu vào sai: 1173, chia cho 7: Nhập sai: 1174, chia cho 7: Nhập sai: 1175, chia cho 7: Nhập sai: 1176, chia cho 7: Nhập đúng: 1177, chia cho 7: Nhập sai: 1178, chia cho 7: Nhập sai: 1179, chia cho 7: Nhập sai: 1180, chia cho 7: Nhập sai: 1181, chia cho 7: Nhập sai: 1182, chia cho 7: Nhập sai: 1183, chia cho 7: Đúng đầu vào: 1184, chia cho 7: Nhập sai: 1185, chia cho 7: Nhập sai: 1186, chia cho 7: Nhập sai: 1187, chia cho 7: Nhập sai: 1188, chia cho 7: Nhập sai: 1189, chia cho 7: Nhập sai: 1190, chia cho 7: Nhập đúng: 1191, chia cho 7: Nhập sai: 1192, chia cho 7: Nhập sai: 1193, chia cho 7: Nhập sai: 1194, chia cho 7: Nhập sai : 1195, chia cho 7: Nhập sai: 1196, chia cho 7: Nhập sai: 1197, chia cho 7: Nhập đúng: 1198, chia cho 7: Nhập sai: 1199, chia cho 7: Saichia cho 7: Nhập sai: 1175, chia cho 7: Nhập sai: 1176, chia cho 7: Nhập đúng: 1177, chia cho 7: Nhập sai: 1178, chia cho 7: Nhập sai: 1179, chia cho 7: Sai đầu vào: 1180, chia cho 7: Nhập sai: 1181, chia cho 7: Nhập sai: 1182, chia cho 7: Nhập sai: 1183, chia cho 7: Nhập đúng: 1184, chia cho 7: Nhập sai: 1185, chia cho 7: Nhập sai: 1186, chia cho 7: Nhập sai: 1187, chia cho 7: Nhập sai: 1188, chia cho 7: Nhập sai: 1189, chia cho 7: Nhập sai: 1190, chia cho 7: Nhập đúng : 1191, chia cho 7: Nhập sai: 1192, chia cho 7: Nhập sai: 1193, chia cho 7: Nhập sai: 1194, chia cho 7: Nhập sai: 1195, chia cho 7: Nhập sai: 1196, chia cho 7: Nhập sai: 1197, chia cho 7: Nhập đúng: 1198, chia cho 7: Nhập sai: 1199, chia cho 7: Saichia cho 7: Nhập sai: 1175, chia cho 7: Nhập sai: 1176, chia cho 7: Nhập đúng: 1177, chia cho 7: Nhập sai: 1178, chia cho 7: Nhập sai: 1179, chia cho 7: Sai đầu vào: 1180, chia cho 7: Nhập sai: 1181, chia cho 7: Nhập sai: 1182, chia cho 7: Nhập sai: 1183, chia cho 7: Nhập đúng: 1184, chia cho 7: Nhập sai: 1185, chia cho 7: Nhập sai: 1186, chia cho 7: Nhập sai: 1187, chia cho 7: Nhập sai: 1188, chia cho 7: Nhập sai: 1189, chia cho 7: Nhập sai: 1190, chia cho 7: Nhập đúng : 1191, chia cho 7: Nhập sai: 1192, chia cho 7: Nhập sai: 1193, chia cho 7: Nhập sai: 1194, chia cho 7: Nhập sai: 1195, chia cho 7: Nhập sai: 1196, chia cho 7: Nhập sai: 1197, chia cho 7: Nhập đúng: 1198, chia cho 7: Nhập sai: 1199, chia cho 7: SaiNhập sai: 1178, chia cho 7: Nhập sai: 1179, chia cho 7: Nhập sai: 1180, chia cho 7: Nhập sai: 1181, chia cho 7: Nhập sai: 1182, chia cho 7: Nhập sai: 1183, chia cho 7: Nhập đúng: 1184, chia cho 7: Nhập sai: 1185, chia cho 7: Nhập sai: 1186, chia cho 7: Nhập sai: 1187, chia cho 7: Nhập sai: 1188, chia cho 7: Sai đầu vào: 1189, chia cho 7: Nhập sai: 1190, chia cho 7: Nhập đúng: 1191, chia cho 7: Nhập sai: 1192, chia cho 7: Nhập sai: 1193, chia cho 7: Nhập sai: 1194, chia cho 7: Nhập sai: 1195, chia cho 7: Nhập sai: 1196, chia cho 7: Nhập sai: 1197, chia cho 7: Nhập đúng: 1198, chia cho 7: Nhập sai: 1199, chia cho 7: SaiNhập sai: 1178, chia cho 7: Nhập sai: 1179, chia cho 7: Nhập sai: 1180, chia cho 7: Nhập sai: 1181, chia cho 7: Nhập sai: 1182, chia cho 7: Nhập sai: 1183, chia cho 7: Nhập đúng: 1184, chia cho 7: Nhập sai: 1185, chia cho 7: Nhập sai: 1186, chia cho 7: Nhập sai: 1187, chia cho 7: Nhập sai: 1188, chia cho 7: Sai đầu vào: 1189, chia cho 7: Nhập sai: 1190, chia cho 7: Nhập đúng: 1191, chia cho 7: Nhập sai: 1192, chia cho 7: Nhập sai: 1193, chia cho 7: Nhập sai: 1194, chia cho 7: Nhập sai: 1195, chia cho 7: Nhập sai: 1196, chia cho 7: Nhập sai: 1197, chia cho 7: Nhập đúng: 1198, chia cho 7: Nhập sai: 1199, chia cho 7: Saichia cho 7: Nhập sai: 1185, chia cho 7: Nhập sai: 1186, chia cho 7: Nhập sai: 1187, chia cho 7: Nhập sai: 1188, chia cho 7: Nhập sai: 1189, chia cho 7: Sai đầu vào: 1190, chia cho 7: Đầu vào đúng: 1191, chia cho 7: Nhập sai: 1192, chia cho 7: Nhập sai: 1193, chia cho 7: Nhập sai: 1194, chia cho 7: Nhập sai: 1195, chia cho 7: Nhập sai: 1196, chia cho 7: Nhập sai: 1197, chia cho 7: Nhập đúng: 1198, chia cho 7: Nhập sai: 1199, chia cho 7: Saichia cho 7: Nhập sai: 1185, chia cho 7: Nhập sai: 1186, chia cho 7: Nhập sai: 1187, chia cho 7: Nhập sai: 1188, chia cho 7: Nhập sai: 1189, chia cho 7: Sai đầu vào: 1190, chia cho 7: Đầu vào đúng: 1191, chia cho 7: Nhập sai: 1192, chia cho 7: Nhập sai: 1193, chia cho 7: Nhập sai: 1194, chia cho 7: Nhập sai: 1195, chia cho 7: Nhập sai: 1196, chia cho 7: Nhập sai: 1197, chia cho 7: Nhập đúng: 1198, chia cho 7: Nhập sai: 1199, chia cho 7: Saichia cho 7: Đầu vào đúng: 1198, chia cho 7: Đầu vào sai: 1199, chia cho 7: Saichia cho 7: Đầu vào đúng: 1198, chia cho 7: Đầu vào sai: 1199, chia cho 7: Sai
Giải trình:
Tôi nhận được 2 giải pháp khác nhau. Cả hai đều tốt:
1. sin là kích hoạt
2. sàn (hoặc int) là kích hoạt
Không thể tìm thấy các trọng số tốt nhất bằng cách sử dụng độ dốc và tôi sử dụng thuật toán di truyền (từ scikit-opt )