☰
攻防世界 misc题GFSJ1113-【Simple-Math】
2026/10/7 8:14:50 网站建设 项目流程

题目描述:一个pdf文件

工具:python

用这个代码就能把结果算出来,我个人认为它实际上考的是异或运算和解方程组。

import numpy as np import hashlib # 1. 定义系数矩阵 A 和结果向量 b A = np.array([ [1, 1, 0, 1, 1, 0, 1, 1, 1, 1], [0, 0, 1, 1, 0, 0, 0, 1, 1, 0], [1, 0, 1, 1, 0, 0, 1, 1, 1, 0], [0, 1, 0, 1, 0, 1, 1, 1, 0, 0], [0, 0, 0, 0, 1, 1, 0, 1, 1, 1], [1, 1, 1, 1, 1, 0, 0, 0, 1, 0], [1, 0, 0, 0, 0, 1, 0, 1, 1, 1], [0, 0, 0, 1, 0, 1, 0, 0, 0, 1], [0, 1, 1, 0, 0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 0, 0, 1, 1, 0, 1] ], dtype=int) b = np.array([1, 0, 1, 1, 0, 0, 0, 1, 0, 1], dtype=int) # 2. 高斯消元法求解 (模2) def solve_gf2(A, b): n = len(b) # 构造增广矩阵 aug = np.hstack((A, b.reshape(-1, 1))) % 2 for i in range(n): # 寻找主元 pivot = -1 for r in range(i, n): if aug[r, i] == 1: pivot = r break if pivot == -1: continue # 无解或多解情况,本题假设唯一解 # 交换行 aug[[i, pivot]] = aug[[pivot, i]] # 消去其他行 for r in range(n): if r != i and aug[r, i] == 1: aug[r] = (aug[r] + aug[i]) % 2 return aug[:, -1].astype(int) # 3. 计算并输出 x = solve_gf2(A, b) x_str = "".join(map(str, x)) print(f"解向量 x: {x}") print(f"拼接字符串: {x_str}") sha1_val = hashlib.sha1(x_str.encode()).hexdigest() print(f"SHA1: {sha1_val}") print(f"Flag: XSCTF{{{sha1_val}}}")

输出结果:

解向量 x: [0 0 1 1 0 1 1 0 0 1]
拼接字符串: 0011011001
SHA1: 103c8041593b4b8e38971db283a7a773b0ffc2ee
Flag: XSCTF{103c8041593b4b8e38971db283a7a773b0ffc2ee}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询