Python复习
数据类型
字符串类
删除空白
rstrip 删除右边空格
lstrip 删除左边空格
strip 删除两边空格
12345678910In [1]: str=" python "In [2]: str.rstrip()Out[2]: ' python'In [3]: str.lstrip()Out[3]: 'python 'In [4]: str.strip()Out[4]: 'python'
列表
列表的索引从0开始
元素添加和删除
1.在列表末尾添加元素
123456In [5]: bicycles = ['trek', 'cannondale', 'redline', 'specialized']In [6]: bicycles[1]Out[6]: 'cannondale'In [7]: bicycles.append("app")In [8]: bicyclesOut[8] ...
强化学习笔记
基础
马尔科夫决策(MDP)
在随机过程中某时刻ttt的状态用StS_tSt表示,所以可能的状态组成了状态空间SSS。
如果已知历史的状态信息即(S1,...,St)(S_1,...,S_t)(S1,...,St),那么下一个时刻状态为St+1S_{t+1}St+1的概率为P(St+1∣S1,...,St)P(S_{t+1}\mid S_1,...,S_t)P(St+1∣S1,...,St)
当且仅当某时刻的状态只取决于上一时刻的状态时,一个随机过程被称为具有马尔可夫性质
P(St+1∣St)=P(St+1∣S1,...,St)P(S_{t+1}\mid S_t)=P(S_{t+1}\mid S_1,...,S_t)
P(St+1∣St)=P(St+1∣S1,...,St)
也就是说当前状态是未来的充分统计量,即下一个状态只取决于当前状态,而不会受到过去状态的影响。
注意:
虽然t+1t+1t+1时刻的状态只与ttt时刻的状态有关,但是ttt时刻的状态其实包含了t−1t-1t−1时刻的状态的信息,通过这种链式的关系,历史的信息被传递到了现在。
Markov ...
策略蒸馏
为了理解蒸馏的含义,我们先以DQN为例
DQN(Deep Q-Network)是一种强化学习算法,它通过深度神经网络来近似Q函数,从而实现智能体的行为决策。下面我们将介绍一个针对DQN网络的案例。
假设我们有一个小型的迷宫环境,智能体的任务是通过左、右、上、下四个动作来找到宝藏并获得最高的奖励。我们可以使用DQN算法来训练智能体。
首先,我们需要定义状态空间、动作空间、奖励函数以及转移函数。在这个案例中,状态空间是迷宫中每个位置的坐标,动作空间是四个方向,奖励函数是在找到宝藏时获得的奖励,转移函数是在智能体执行一个动作后转移到下一个状态的过程。
然后,我们可以使用深度神经网络来近似Q函数。在这个案例中,我们可以使用一个简单的全连接神经网络,它的输入是当前状态,输出是四个动作的Q值。我们使用均方误差损失函数来度量Q值的预测误差,并使用梯度下降算法来优化神经网络参数。
接下来,我们可以使用经验回放机制来训练DQN网络。经验回放是一种存储智能体的经验,并从中随机抽样的机制。这样可以使得训练数据更加丰富、稳定,并且可以避免连续的训练样本之间的相关性。在每次训练中,我们随机从经验池中选择一个批次 ...
通过修改 PE 装载 DLL 实验
参考课件 chap06.pdf 中“通过修改PE装载DLL”一节的内容,以及课本第 5.5节的 内容,实现对notepad.exe(修復並下載Notepad.exe)的修改,使得修改后的 notepad.exe 在双击运行时,能够自动隐式装载 MyDll3.dll,并进而 将一个网页下载到本地index.html 文件。
本上机作业的目的是让大家深入理解 PE 文件中的导入表、导入地址表等关键结构及相关的功能。
本实验所使用的notepad.exe 是 Windows 7系统(最好32位版)中的可执行程序,MyDll3.dll 也仅保证在 Windows 7下能正常工作,因此,建议在 Windows 7环境(可预先安装虚拟机)下进行修改。请在虚拟机中禁用所有杀毒软件,确保修改过程不会受到杀毒软件的干扰。保证虚拟机能联网,以便DLL装载后的网页下载动作能正常完成。
下载notepad.exe可能与课本中所描述的notepad.exe版本不一致,应主要参考课件中的修改流程。
使用PEview分析PE文件,使用HxD编辑器修改PE文件。
直接使用本书所附代码编译生成 MyDll3.dll ...
RSA 加密体制破译
题目摘要
赛题名称: RSA 加密体制破译
赛题描述
RSA密码算法是使用最为广泛的公钥密码体制。该体制简单且易于实现,只需要选择5个参数即可(两个素数𝑝𝑝p和𝑞𝑞q、模数𝑁=𝑝𝑞𝑁=𝑝𝑞N=pq、加密指数𝑒𝑒e和解密指数𝑑𝑑d。设𝑚为待加密消息RSA体制破译相当于已知𝑚𝑒𝑚^𝑒me modmodmod 𝑁𝑁N能否还原𝑚的数论问题。目前模数规模为1024比特的RSA算法一般情况下是安全的,但是如果参数选取不当,同样存在被破译的可能。有人制作了一个RSA加解密软件采用的RSA体制的参数特点描述见密码背景部分)。
已知该软件发送某个明文的所有参数和加密过程的全部数据(加密案例文件详见附件3-1。Alice使用该软件发送了一个通关密语,且所有加密数据已经被截获,请问能否仅从加密数据恢复该通关密语及RSA体制参数?如能请给出原文和参数,如不能请给出已恢复部分并说明剩余部分不能恢复的理由?
加密过程
原始明文
1This is a test of my RSA system.
Frame0
1A5F51EB02EA9C0CC9B96926A ...
Week 6 - Programming Assignment
Content
更好的效果PDF:pdf文章列表 | Asiv's Blog (niceasiv.cn)
Factoring challenge #1:
Your goal in this project is to break RSA when the public modulus NNN is generated incorrectly. This should serve as yet another reminder not to implement crypto primitives yourself.
Normally, the primes that comprise an RSA modulus are generated independently of one another. But suppose a developer decides to generate the first prime ppp by choosing a random number RRR and scanning for a prime close by. The second pr ...