实验吧奇怪的字符串

http://www.shiyanbar.com/ctf/1877
奇怪的字符串:
信息保密的需求和实际操作自古有之,与之相应的信息加密与解密也是历史悠久,现有一段经过古典密码理论(不止一种)加密的密文,内容如下: 
89 51 82 109 89 50 86 122 97 71 107 61 
请找出这段密文隐藏的消息明文
解:
古典密码编码方法归根结底主要有两种,即置换和代换。
1.古典密码解码ascii码对于字母:Y3RmY2VzaGk=

2.已经提示有等号用base64解:ctfceshi

所以最后flag:ctfceshi



          1.的代码

#从数字转换到字母  按照ASCII编码
L=[89,51,82,109,89,50,86,122,97,71,107,61]

for x in L:
	print(chr(x),end='')





2.的代码

#-*- coding: utf-8 
import base64

str=b'Y3RmY2VzaGk='
str=base64.b64decode(str)
print(str)
str=str.decode('ascii')#bytes解码会得到str
print(str)



import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder from sklearn.ensemble import RandomForestRegressor from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error from scipy.optimize import minimize import matplotlib.pyplot as plt from pathlib import Path # ------------------ 数据预处理 ------------------ # 设置文件路径 excel_path = Path("C:/Users/Administrator/Desktop/augmented_data3.xlsx") # 读取数据 data = pd.read_excel(excel_path, sheet_name='Sheet1') # 特征工程处理 # 检查并转换分类变量(仅对真正需要编码的列进行处理) cat_cols = [] le = LabelEncoder() # 假设'燃尽风位置'是分类变量,进行编码 if data['燃尽风位置'].dtype == 'object': data['燃尽风位置'] = le.fit_transform(data['燃尽风位置']) cat_cols.append('燃尽风位置') # 确保温度保持为连续数值(移除之前的字符串转换) X = data[['掺氨比', '过量空气系数', '燃尽风位置', '主燃区温度']] y = data['NO排放浓度']# 在现有数据预处理阶段后添加以下代码(划分训练测试集之前) def iqr_outlier_removal(df, cols, factor=1.5): """基于IQR的离群值过滤""" for col in cols: Q1 = df[col].quantile(0.25) Q3 = df[col].quantile(0.75) print(f"{col}边界值: [{Q1 - factor*(Q3-Q1):.2f}, {Q3 + factor*(Q3-Q1):.2f}]") IQR = Q3 - Q1 df = df[(df[col] >= Q1 - factor*IQR) & (df[col] <= Q3 + factor*IQR)] return df # 指定需要处理的连续型列(包括目标变量) continuous_cols = ['主燃区温度', 'NO排放浓度'] # 执行过滤(注意保持特征与目标变量的同步过滤) print("原始数据量:", len(data)) data = iqr_outlier_removal(data, continuous_cols) print("过滤后数据量:", len(data)) # ------------------ 模型训练 ------------------ # 划分训练测试集 X_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.2, random_state=42 ) # 随机森林模型配置 rf = RandomForestRegressor( n_estimators=300, max_depth=10, min_samples_split=5, random_state=42 ) # 训练模型 rf.fit(X_train, y_train) y_pred = rf.predict(X_test) # 计算评估指标 mse = mean_squared_error(y_test, y_pred) rmse = np.sqrt(mse) mae = mean_absolute_error(y_test, y_pred) r_squared = r2_score(y_test, y_pred) print(f'均方误差 (MSE): {mse:.2f}') print(f'均方根误差 (RMSE): {rmse:.2f}') print(f'平均绝对误差 (MAE): {mae:.2f}') print(f'决定系数 (R²): {r_squared:.2f}') IQR处理离群值后数据量减少了但是MSE和RMSE不变
最新发布
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值