ACM课内练习_1】的更多相关文章

题意很简单就是一个一个素数因子只有2,3,5,7的整数,让你求它的约束的个数(暴力会超时),一开始的思路是先计算2,3,5,7这四个素数因子的个数,求出来之后想了很久没有想出他们个数和约束个数之间的数学关系,后来看了别人的代码,自己画了张图分析了一下,将2,3,5,7的个数全部加上1之后的四个数的乘积就是约数的个数(可以画棵树分析一下) 例如:12=2*2*3 1.从根部1出发,两个素因数2,所以有三种可能 一个二都不乘: 1 乘一个二: 2 乘两个二: 4 2.然后从 1,2,4 出发 ,有6…
RSA基本实现 首先获得N比特的伪随机数:使用Random库中内容. randint(n,m) 表示生成一个在n和m之间的随机数, **表示乘幂. getPrime找素数,or 1运算是一种优化:如果当前数不是素数,则+2再验证:方法有点糙,但勉强能用. exgcd此处用来计算逆元.它读取两个三元组,模仿上课时的那种矩阵解法来解. 注意else里的exgcd外一定要套return:要不然值是出不来的. 这里的素数判断用miller_Rabin测试写出. 先用k提取出p-1里2的所有因子,循环随机…
To 学弟学妹们: 写这个随笔原意是记录一下这个很有趣的实验 ,记录一下写的时候的细节和思路. 要是光是抄这个代码,反而使得这个实验失去了意义. 加油,这个实验收获真的很大. 任务描述: 用一个空白文件模拟磁盘外存,编程实现一个简单的文件系统,要求该文件系统支持一些基本的Linux指令:ls,创建.删除文件和文件夹,移动文件,关闭系统. 即实现以下的命令 ls /dirmove /src /dstdelete -d /dirdelete -f /filecreate size /filecrea…
在RSA攻击中,存在着"小明文攻击"的方式: 在明文够小时,密文也够小,直接开e次方即可: 在明文有点小时,如果e也较小,可用pow(m,e)=n*k+c穷举k尝试爆破 所以,比如说,在选择明文攻击中,单纯的RSA非常容易被破解. 于是,我们就像将密文进行一下填充,最好让密文都等长. 但是填充方式也是很讲究的:不好的填充规则往往仅仅有限的增加了攻击的难度,或者难以实现等长密文. 于是我们就查到了(bushi)OAEP--最优非对称加密填充. 最优非对称加密填充: (1)准备工作: 将k…
emmmm感觉其实自己对这个的理解完全不够,原理只能写出这么个东西(悲) 代码完全是 攻击方式中(1)(2)内容的实现. lambda是一种可以理解为匿名函数的写法:写在这里看起来很酷炫(bushi) 程序中的N对应的就是原理讲解中的m,用朴实的东西完全可以写出来. iroot(x,y)对x开y次方:它的类型不是int,所以要用代码所示的方式把所需内容提取出来. try except 段尝试出正确的Ni搭配并输出. 代码完全没有阅读难度:看就完了.…
注:(不求甚解的)攻击原理 以及(浅层的)算法解释已在图片中给出:文字部分主要讲一些python语法的东西. 代码需要库 gmpy2和libnum:加密算法还需要Crypto.Util.number . gcdext(a,b)扩欧 ::pow(a,b,c)将a的b次方对c取模 注意使用gmpy2大整数类"mpz"来规避"ValueError: pow() 2nd argument cannot be negative when 3rd argument specified&q…
一. 知识点梳理 (一) 先从工具STL说起: 容器学习了:stack,queue,priority_queue,set/multiset,map/multimap,vector. 1.stack: 栈是一种只能在某一端插入和删除数据的特殊线性表.他按照先进先出的原则存储数据,先进的数据被压入栈底,最后进入的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后被压入栈的,最先弹出).因此栈也称先进后出表. 2.queue: 是典型的先进先出容器,FIFO(first-in-first-out),…
博弈知识汇总 转自:http://www.cnblogs.com/kuangbin/archive/2011/08/28/2156426.html 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取胜. (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.…
博弈知识汇总 有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取胜. (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取…
两年ACM生活总结 转眼已经踏入ACM这条不归路已经两年了, 深深的感觉到ACM的不易 和 艰辛,但同时ACM给我所带来的快乐,让我认为值一切都是值得的. 我刚上大学那会,我们学校的ACM刚刚起步不到一年,也就是我们学长才开始搞ACM半年.那时候学长辅导我们上机课,那时候对计算机非常有兴趣,就整天抱着电脑在宿舍里刷OJ的排行榜,想想那时候真是个快乐的日子.大家为了OJ的排行榜刷的不亦乐乎.遇到不会的问题就攒着等到上机课问学长. 感觉学长真是厉害! 经常下学的时候跟学长一块吹牛逼. 学长告诉我咳咳…