6.3k 6 分鍾

# 流密码 逐位加密信息,将明文消息分解为单个位,然后使用密钥位将其分别转换为密文。流密码一次加密一位数据,而不用等待数据块的形成,此过程的关键在于根据加密密钥和种子(随机数 nonce )生成伪随机比特流,它们一起创建了一个密钥流(伪随机比特流),该密钥流再与纯文本逐位进行异或运算,生成密文。因为每个数字的加密都取决于密码引擎的当前状态,所以流密码也被称为状态密码。 # 分组密码 顾名思义,分块加密信息;分组密码将明文消息分解为固定大小的块 block ,然后使用密钥将其转换为密文。例如,当提供了一个 x 位分块纯文本(连同一个密钥)作为块密码引擎的输入时,它会生成相应的 x...
2.2k 2 分鍾

# 基本思路 一次归并 假设左右部分都已经排好序 def merge(li,low,mid,high): i=low j=mid+1 tmp=[] while i<=mid and j<=high: if li[i]<li[j]: tmp.append(li[i]) i+=1 else: tmp.append(li[j]) j+=1 while i<=mid: tmp.append(li[i]) i+=1 while j<=high: tmp.append(li[j]) j+=1 li[low:high+1]=tmp#...
4.6k 4 分鍾

# 什么是堆 如果有一个关键码的集合 K={k_0,k_1,k_2,…,k_{n-1}} ,把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足 ki<=k_{2i+1} 且 ki<=k_{2i+2} (或满足 ki>=k_{2i+1}且ki>=k_{2i+2} ),其中 i=0,1,2,…...
755 1 分鍾

# 回顾插入排序 def insertSort(li): for i in range(1,len(li)): #i 表示摸到的牌的下标,注意循环从 1 开始,因为手里的牌是 0 tmp=li[i] j=i-1 #j 表示手里的牌的下标 while j>=0 and li[j]>tmp: #如果手里的牌比 tmp 小或者手里已经没有牌了,结束循环 li[j+1]=li[j] j-=1 li[j+1]=tmp # 希尔排序 现在,希尔排序在插入排序的基础上,设置了间隔 gap ,实现了分组插入排序 首先取一个整数 d1=n/2 ,将元素分为 d1 个组,每组相邻两元素之间间距为...
6.9k 6 分鍾

# 局部连接、权值共享、多核卷积 # 局部连接 传统的神经网络是一种层级的结构,由输入层、隐藏层、输出层构成,每一层神经元与下一层神经元完全连接,神经元之间不存在同层之间的连接,也不存在跨层连接。相比传统神经网络,卷积神经网络引入感受野 receptive field 的概念(局部连接),即每一个神经元只与上一层的部分神经元相连接,只感受局部的图像,而非整体的图像。 # 权值共享 其次,每一个神经元都可视为一个滤波器,同一个神经元使用一个固定的卷积核,固定的卷积核卷积上一层的整张图像。假设卷积核为 m*m ,进行权值共享时总参数个数为 m*m*channels...
3.9k 4 分鍾

# 词法分析器在程序编译过程中所处的位置 # 词法分析器 Lexical Analyzer ,输入源程序,扫描器 Scanner 从左至右逐个字符地对源程序进行扫描,产生多个单词符号;单词符号的种类有 基本字(关键字): begin 、 repeat 、 for 等程序语言定义好的 标识符:用来表示各种名字,如变量名、数组名和过程名 常数:各种类型的常数 运算符: +、-、*、/ 界符: ,、;、()、space符 输出的单词符号的表示形式为 (单词种别,单词自身的值)...
5.7k 5 分鍾

# 已知文法 E → T|E+T|E-T T → F|T*F|T/F F → (E)|i 给出下列表达式的最左最右推导 i*(i+i) i+i*i # 思想 1. 输入待推导的表达式 2. 对表达式字符串进行第一行文法判定 判断是否有 + or - 运算符括号内除外,是则输出 E→E+T or E→E-T , + 之前的所有字符返回进行 2 , + 之后的字符进行 3 ;否则进行下一步。 输出 E→T ,所有字符串进行 3 。 3. 对表达式字符串进行第二行文法判定 判断是否有 * or / 运算符括号内除外,是则输出 E→E*T or E→E/T , + 之前的所有字符返回进行 2...
4.8k 4 分鍾

# 状态 s1:start s2:right s3:left s4:halt s5:break (失败) 我不是很确定状态是不是可以自己定,按我的理解 break 则说明字符串的首尾 (包括缩短后的串) 匹配不超过,而 halt 则说明全部匹配完毕,回文串判断完毕 # 大致思路 非回文与回文分别以 abcab 和 abcba 为例,记录过程和结果 (每一步的纸带布局、状态)。 #...
1.8k 2 分鍾

基于分治的思想,首先在数组中选择一个基准点,选取基准点的效率决定了时间复杂度,从数组两端扫描数组,设置 low 和 high 两个索引,图中蓝标代表 low 红标代表 high ,橘色表代表重合位置 首次分割,数列被分成了两个子数列,长度分别是 i-1 和 n-i ,排序时间表示为 T(i-1) 和 T(n-i) ,计算总时间还得加上分割操作的时间,分割操作只用了循环 while(low<high) ,此段时间记为 cn ,所以 Tn = T(i-1)+T(n-i)+cn ; # 演示 public class quicksort { public static...
1.8k 2 分鍾

# Ctrl-C Ctrl-C 我们再熟悉不过了,可如果一开始,我们有 Ctrl-C 这样一个具体的需求,操作系统应该怎样设计 / 实现? UNIX 信号 job control 怎样在 shell 里管理多个进程 为什么 Ctrl-C 能退出程序? 1. Ctrl-C 并不能杀掉所有的程序,比如没法用 Ctrl-C 来退出 vim 2. 两个进程同时使用了 read(STDIN_FILENO,buf,size); ,按下 Ctrl-C ,谁收到了? Ctrl-C 的背后涉及若干操作系统中的对象 按下 Ctrl-C 的终端 tty(1) echo hello >...