- 博客(32)
- 资源 (1)
- 收藏
- 关注
原创 RSA数字签名
利用RSA-Tool加密消息利用RSA算法实现对称密钥的安全分配利用RSA算法生成数字签名2.自己选定一个可用的整数e。3.点击Calc.D生成d。4.至此创建了一对公钥和私钥。5.将公钥(N,e)发送给小伙伴,小伙伴利用该公钥进行消息加密并发回密文。6.利用私钥对小伙伴发来的密文进行解密。注:加密时仅需要e和N,解密时仅需要d和N。利用RSA算法实现对称密钥的安全分配1.小A同学准备一些文字(信件),选择一个密钥利用DE
2022-05-05 13:07:00
2246
原创 利用常见的网络命令获取网络信息
利用ipconfig命令获取本地网络信息利用ping命令获取远程网络信息其他常用网络命令nslookup 命令tracert 命令arp 命令
2022-05-04 21:59:01
604
原创 计算机网络计算题
循环冗余校验三类IP地址IP地址的指派范围私有网段子网掩码IP范围IP数据报组成计算路由聚合集线器、交换机、路由器超时重传时间的选择引入计算超时重传时间RTO测量往返时间RTT的复杂性Karn算法TCP可靠传输流量控制拥塞控制运输连接三次握手四次挥手
2021-12-31 22:59:39
9630
3
原创 操作系统计算题
单道、多道非抢占式和多道抢占式PV操作拣棋子水果基础版扩展版加强版超市购物开车售票银行叫号和尚喝水订机票理发师缓冲区读写商品制约独木桥读写读者优先写者优先读写公平银行家算法CRC由逻辑地址转物理地址计算大小多少访问主存时间和次数页面置换文件管理
2021-12-28 11:11:52
3017
原创 灰色预测GM(1,1)代码
目录1.一项初始序列X02.累加序列,生成新序列3.紧邻均值生成序列4.求相关参数5.由第四步求出参数6.生成预测模型7.累减还原,得原始数列的灰色预测值8.模型检验9.可视化结果分析1.一项初始序列X0import numpy as npimport math as mtimport matplotlib.pyplot as plt X0 = [15,16.1,17.3,18.4,18.7,19.6,19.9,21.3,22.5]2.累加序列,生成新序列X1 = [15]add =
2021-12-15 15:05:54
7946
23
原创 进程和线程的区别
进程进程为保护单位和资源分配单位一个进程可有多个线程线程处理机调度的基本单位进程中单一任务的控制流特点:开销少切换迅速通信效率高:共享相同的地址空间并发度高:线程个数无限制进程中所有线程共享所属进程内的主存和其他资源...
2021-12-12 18:58:06
286
原创 悲观锁和乐观锁
目录悲观锁特点适用场景应用乐观锁特点适用场景应用悲观锁特点共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程。适用场景多写的场景。应用Java中synchronized和ReentrantLock等独占锁就是悲观锁思想的实现。乐观锁特点总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。适用场景多读场景:
2021-12-12 17:34:35
451
原创 代码的执行顺序
1. Test.java和Person.java编译(javac)成Test.class和Person.class,两个class文件放入方法区。2. 执行main方法,main方法入栈。3. 执行Person zhang=new Person();此时对象zhang进入堆,其中包括其变量和方法(若其中的变量和方法为static,则放入方法区),同时把zhang的地址值传入main方法。4. 执行run方法,run方法入栈。5. 执行完毕,依次出栈(先进后出),释放内存。
2021-12-12 17:26:13
366
原创 灰色预测GM(1,N)代码
累加序列,生成新序列import numpy as npimport math as mtimport matplotlib.pyplot as plt# 1.这里将 a 作为特征序列 x0,x1,x2,x3作为相关因素序列a = [560823,542386,604834,591248,583031,640636,575688,689637,570790,519574,614677];x0 = [104,101.8,105.8,111.5,115.97,120.03,113.3,116.4,1
2021-12-07 17:39:18
5242
9
原创 存储用补码
因为计算机只有加法没有减法,在做减法运算的时候,可以认为是加上一个负数。源码符号位:0正1负。转化为二进制数。1-1=1+(-1)=[00000001]原+[10000001]原=[10000010]原=-2 (符号位也参与运算)与实际不符反码正数时,反码=源码;负数时,将原码各位取反,符号位不变。1-1=1+(-1)=[00000001]原+[10000001]原=[00000001]反+[11111110]反=[11111111]反=[10000000]原=-0(但是无正负0之说)补码
2021-12-05 15:28:29
148
原创 cpu-内存(电容)-磁盘
主存储器-内存读写速度约2nsRAM 通过电容(会缓慢放电,放电到一定程度就会导致数据发生变化)存储数据,必须隔一段时间刷新一次,如果断电,数据就会丢失主存与CPU交互辅助存储器-磁盘读写速度约2-5ms磁盘表面是可磁化的磁特性材料,不像电容那样依赖于通电,就算关掉电源,硬盘的数据也不会消失。如果 CPU(执行速度约0.2ns) 要直接从硬盘里面取数据,时间太长,cpu利用率太低。所以内存会作为“中间桥梁”,先到硬盘里面复制一份进来、再让 CPU 直接到内存中取数据做运算(CPU 里面也
2021-11-28 11:09:03
459
原创 数组下标为什么从0开始
重要:数组变量 实际上在内存上储存的是这个数组变量中第一个元素的的首地址,而系统在取数组中某个元素的值时,必须要得到具体的那个元素的地址才能获取到对应的值具体每个元素的内存地址 = 数组变量首地址 + 下标 X 每个元素占用的字节数比如:int arr[5]={11,12,13,14,15}因为 int每个元素占用4个字节(32bit),所以 数组中每个相邻的元素内存地址都相差4那么每个元素的地址就等于前一个元素的地址 + 4a[0] 的内存地址 = a的地址 + 0 * 4 (第
2021-11-28 10:45:25
830
原创 红黑树(含二叉树、2-3-4树)解释
目录二叉树定义缺陷2-3-4树定义添加操作红黑树定义插入操作删除操作二叉树定义1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。运用了二分查找的思想[复杂度O(logn)],查找所需的最大次数等同于二叉查找树的最大高度。缺陷多次插入新节点容易导致不平衡,使查找性能大打折扣,几乎变成了线性查找[复杂度O(n)]如下图:假设初始的二叉查找树只有三个结点,根结点值为9,左孩子值为8,右孩子值为12接下来我
2021-11-28 10:32:21
344
原创 Linux中ls -l、ls -d和ls -ld的显示内容与区别
当前用户的家目录~和根目录/下,ls -l(查看当前目录所有的文件和目录的详细信息)、ls -d(只显示当前文件夹)、ls -ld(查看当前目录本身的权限与属性信息)的区别与显示内容。理解性提示:-:普通文件b:块设备文件,如硬盘、光盘等d:目录文件c:字符设备文件,如键盘、鼠标等l:链接文件p:管道文件,与shell编程有关的文件目录一、当前用户的家目录~基本信息三种形式二、当前用户的根目录/基
2021-10-24 16:54:38
20298
转载 力扣有序数组中的单一元素(数组+二分查找)
目录题目思路代码题目思路仅对偶数索引进行二分搜索在该算法中,我们对所有偶数索引进行搜索,直到遇到第一个其后元素不相同的索引。用二分搜索替代线性搜索。在单个元素的后面,则成对的元素变为奇数索引后跟他们的同一元素。说明我们在检索单个元素后面的偶数索引时,其后都没有它的同一元素。因此,我们可以通过偶数索引确定单个元素在左侧还是右侧。算法:奇数长度的数组首尾元素索引都为偶数,因此我们可以将 lo 和 hi 设置为数组首尾。我们需要确保 mid 是偶数,如果为奇数,则将其减 1。然后,我们
2021-08-30 17:30:18
215
转载 解决Next Greater Number 一类问题(单调栈、循环数组)
目录标题思路模板代码例题循环数组思路代码标题单调栈实际上就是栈,只是利用了一些巧妙的逻辑,使得每次新元素入栈后,栈内的元素都保持有序(单调递增或单调递减)。听起来有点像堆(heap)?不是的,单调栈用途不太广泛,只处理一种典型的问题,叫做 Next Greater Element。首先,讲解 Next Greater Number 的原始问题:给你一个数组,返回一个等长的数组,对应索引存储着下一个更大元素,如果没有更大的元素,就存 -1。不好用语言解释清楚,直接上一个例子:给你一个数组 [2,1,
2021-08-20 13:31:25
341
原创 归并两个有序数组(双指针)
因为这两个数组已经排好序,我们可以把两个指针分别放在两个数组的末尾,即 nums1 的m − 1 位和 nums2 的 n − 1 位。每次将较大的那个数字复制到 nums1 的后边,然后向前移动一位。因为我们也要定位 nums1 的末尾,所以我们还需要第三个指针,以便复制。 在以下的代码里,我们直接利用 m 和 n 当作两个数组的指针,再额
2021-08-18 18:19:51
266
转载 力扣三数之和、四数之和(数组+双指针+排序)
三数之和算法流程:1、特判,对于数组长度 nn,如果数组为 nullnull 或者数组长度小于 33,返回 [][]。2、对数组进行排序。3、遍历排序后数组:若 nums[i]>0nums[i]>0:因为已经排序好,所以后面不可能有三个数加和等于 00,直接返回结果。对于重复元素:跳过,避免出现重复解令左指针 L=i+1L=i+1,右指针 R=n-1R=n−1,当 L<RL<R 时,执行循环: 当 nums[i]+nums[L]+nums[R]==0nums[i]
2021-08-16 23:03:02
202
原创 java Arrays.sort()详解
int [][]a = new int [5][2];//定义一个二维数组,其中所包含的一维数组具有两个元素步骤:1 导入 java.util.Arrays 包。2 使用 Armys.sort(数组名) 语法对数组进行排序,排序规则是从小到大,即升序。默认:升序import java.util.Arrays;public class Test1 { public static void main(String[] args) { int[] a = {4,6,8,2,1
2021-08-15 18:07:49
2329
原创 哈希表,双指针
力扣:两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。 public int[] twoSum(int[] nums, int target) { int len=nums.length; Map<Integer, Integer> ha.
2021-08-15 17:00:27
261
原创 C++常用函数汇总(持续更新)
注:写这篇文章是为了平时学习积累噢!文中的内容都表明出处啦,我只写了大概,不如原博主写的好,大家见谅哈~目录vectoraccumulatevector作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。特别注意:使用vector需要注意以下几点:1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;2、Vector作为函数的参数或者返回值时,需要注意它的写法:double Distan
2021-08-10 17:10:53
7209
5
原创 洛谷P1012 [NOIP1998 提高组] 拼数(字符串+排序)
目录题目代码题目题目描述设有 n 个正整数 a 1 …a n,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。输入格式第一行有一个整数,表示数字个数 n。第二行有 n 个整数,表示给出的 n 个整数 ai。输出格式一个正整数,表示最大的整数输入输出样例输入#1313 312 343输出 #134331213输入 #247 13 4 246输出 #27424613说明/提示对于全部的测试点,保证 1<=n<=20,1<=ai<
2021-07-05 10:30:38
508
原创 力扣最长公共子序列(字符串输出+长度)
目录题目过程代码题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 &n
2021-06-25 13:15:33
754
原创 洛谷P1004方格取数(动态规划+DP+递推)
递推关系必须是从次小的问题开始到较大的问题之间的转化,从这个角度来说,动态规划往往可以用递归程序来实现,不过因为递推可以充分利用前面保存的子问题的解来减少重复计算,所以对于大规模问题来说,有递归不可比拟的优势,这也是动态规划算法的核心之处。题目 设有 N×N 的方格图 (N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字 0。如下图所示(见样例):A0 0
2021-05-26 19:13:56
996
原创 LeetCode4寻找两个有序数组的中位数(二分查找+分治)
目录1.题目2.分析3.代码二分查找:绝大多数二分查找问题利用的是单调性,也有一些例外)或者题目本身蕴含的可以逐渐缩小问题规模的特性解决问题。时间复杂度log级。分治法的设计思想是:将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。分治策略是:对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。这种算法设计策略叫做
2021-05-26 13:44:11
973
原创 滑动窗口(LeetCode第3题:无重复字符的最长字串)
什么是滑动窗口?其实就是一个队列,比如 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,要移动这个队列!如何移动?只要把队列的左边的元素移出就行了,直到满足题目要求!一直维持这样的队列,找出队列出现最长的长度时候,求出解!题目无重复字符的最长子串过程维护一张hash表,key是元素,value是元素index(元素)+1, 从头开始遍历数组end++若该元素没有重复,则map.put(key, end+1);
2021-05-25 12:51:07
160
小型企业网的设计与实现.pkt
2021-12-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人