自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 维吉尼亚密码破解

维吉尼亚密码简述:在一个凯撒密码中,字母表中的每一字母都会作一定的偏移,例如偏移量为3时,A就转换为了D、B转换为了E……而维吉尼亚密码则是由一些偏移量不同的恺撒密码组成。例如,假设明文为:ATTACKATDAWN选择某一关键词并重复而得到密钥,如关键词为LEMON时,密钥为:LEMONLEMONLE明文:ATTACKATDAWN密钥:LEMONLEMONLE密文:LXFOPVEFRNHR密码破译思路:重合指数法获得密钥长度:将密文按列分组,每行元素个数(组数)为

2021-12-16 21:15:00 3680

原创 递归学习:台阶问题+python代码

问题介绍:假设一段楼梯共n个台阶,小明一步最多能上3 个台阶,编写递归函数计算小明上这段楼梯一共有多少种方法。 假设一段楼梯共n个台阶,小明一步最多能上3 个台阶,编写程序列出小明上这段楼梯的所有方法先解决第一个问题:问题分析:每一步可能的情况有一个台阶,两个台阶,三个台阶,将台阶总数设为n,方法数设为step(n),可以得到,迈一个台阶后方法数为step(n-1),两个台阶后为step(n-2),三个台阶为step(n-3),则可得step(n)=step(n-1)+step(n-2)+s

2021-11-05 00:40:18 6089

原创 python关于range()的一些问题

首先,range函数用法有:1.range(a,b)生成从a到b-1的迭代器2.range(x)生成从0到x-1的迭代器需要注意的是,python2返回的是列表,python3返回的是迭代器所以,python3下注意不要将其当成列表使用,如下列表操作对其是不管用的:如果需要使用range(x)的列表的话,目前想到的只要老老实实用列表推导:...

2021-11-05 00:11:59 583

原创 递归典型问题:汉诺塔算法+python代码实现

如果你不想看过程,想直接使用代码可直接移步末尾处:代码,调用示例及结果问题简述:据说古代有一个梵塔,塔内有三个底座A、B、C,A 座上有64 个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64 个盘子从A 座移到C 座,但每次只能允许移动一个盘子。在移动盘子的过程中可以利用B 座,但任何时刻3 个座上的盘子都必须始终保持大盘在下、小盘在上的顺序。如果只有一个盘子,则不需要利用B 座,直接将盘子从A 移动到C 即可。问题分析:假设共有Num个盘子,不难发现,必须要将上层

2021-11-04 23:06:34 1065

原创 快速幂算法

对于式子a^b%p,如果直接先计算a^b,再取余,算法复杂度是非常高的,因此需要使用快速幂算法对其进行优化。算法原理如下:首先我们先利用第三个式子,写出快速乘法取余算法:long long quick_mul(long long a, long long b, long long p){ long long ans; ans = ((a%p)*(b%p)) % p; return ans;}接下来就可以结合第三第四个式子进行快速幂取余算法了我们对其优化的方向很明确,..

2021-10-25 11:42:20 88

原创 多个数码管动态显示

首先介绍多个数码管电路连接:n个数码管由n条线控制哪个数码管亮,再加上8条(如果不包括小数点则为7条)线控制亮的数码管的数字这里则会涉及到一个问题,一个时刻如果只能控制一个数码管亮的话怎么做到多位数的显示呢?其原理为:动态扫描。利用人体视觉残留效果,控制一个数码管先亮,利用控制数字的8条线控制它显示的数字,再快速切换到下一个数码管亮,再切换控制数字的8条线为该数码管要显示的数字,切完n位数后再到最初的那个数码管亮,这样循环,注意的是:每次切换均要进行一段不长不短的延迟(可以通过一个fo...

2021-10-15 18:40:51 3005

原创 用char类型(8位)实现16位二进制数运算

对于减法运算,由于无进位考虑,较为简单这里就不列举下面是加法运算:#include <iostream>using namespace std;unsigned char carry_judge(unsigned char *op1, unsigned char *op2, unsigned char r){ unsigned char x1, x2,x3; x1 = op1[1]; x2 = op2[1]; x3 = r; x1 >...

2021-10-06 17:39:13 734

原创 欧几里得算法(求最大公因子)及欧几里得拓展算法(求最大公因子用两数的线性表示)

以下算法默认使用c++的NTL库,ZZ为NTL库提供的一个长整数类型欧几里得算法:ZZ Euclid1(Vec<ZZ>& x, Vec<ZZ>& y, Vec<ZZ>& z, Vec<ZZ>& k, long* n,ZZ p, ZZ q) //Euclid算法,求最大公因子...

2021-10-04 20:07:11 492

转载 c++计时操作

从C++11起,C++提供了更加现代的时间工具,定义在<chrono>中,namespace std::chrono下。chrono库主要定义了三种类型:时钟(clock)、时间点(time point)和时间段(duration)。时钟产生时间点,时间点相减得到时间段,时间点加减时间段得到时间点。由于有auto自动类型推导和运算符重载的存在,我们在使用时很少需要写明与时间相关的变量的类型。C++标准规定了3种时钟: system_clock,系统范围的挂钟,可以理解为桌面右下角的

2021-10-04 19:13:23 870

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除