import ast import math def mean(x): m = len(x[0]) total = [0. for _ in range(m)] for i in range(m): cnt = 0. for num in x: cnt += num[i] total[i] = cnt return [(nums/len(x)) for nums in total] def std(x): mu = mean(x) res = [0. for _ in range(len(x[0]))] k=0. for vec in x: for i in range(len(vec)): k = (vec[i] - mu[i]) ** 2 res[i] += k # res 存储了每个位置上的x-mu平方总和 return ([math.sqrt(s/len(x)) for s in res]) # 输入是一组数据,返回是标准化后的数据 def standardized(x): mu = mean(x) sigma = std(x) stand = 0. res = [[] for _ in range(len(x))] for idx, num in enumerate(x): for i in range(len(num)): stand = (num[i] - mu[i]) / sigma[i] res[idx].append(stand) return res def normalized(x): n = len(x[0]) find = [[] for _ in range(n)] ans_min = [] ans_max = [] res = [[] for _ in range(len(x))] for i in range(n): for num in x: find[i].append(num[i]) ans_min.append(min(find[i])) # ans_min存储每个位置i上的最小值 ans_max.append(max(find[i])) # ans_max存储每个位置i上的最大值 for idx, vec in enumerate(x): for i in range(len(ans_max)): res[idx].append((vec[i] - ans_min[i]) / (ans_max[i] - ans_min[i])) return res # res存储normalized后的结果 def main(): data = ast.literal_eval(input().strip()) n = len(data) ans = [[] for _ in range(2*n)] stand = standardized(data) norm = normalized(data) paired = list(zip(stand, norm)) # 打印结构化输出,便于阅读 formatted = [] for row in zip(*paired): row_fmt = [] for col in row: row_fmt.append([round(v,4) for v in col]) formatted.append(row_fmt) print(tuple(formatted)) # 主程序 if __name__ == "__main__": main()