算法
文章平均质量分 62
密码学、统计分析各种常见算法……
星云
我们不只是代码的搬运工,我们还生产代码。
展开
-
7行实现维吉尼亚密码加密解密
维吉尼亚密码一种多表代换密码,可以看作移位密码推广,被加密字符串的不同字符采取了不同的映射,这些映射所使用的加数用字母表示形成一个密码。密码为单词KKK,长度为lll,明文为单词SSS,则密文CCC中的每一个字母的序号(指其为26个字母中的第几个)为Ci=(Si+K(imod l))mod 26C_i=(S_i+K_{(i\mod l)})\mod 26Ci=(Si+K(imodl))mod26。代码python3输入待加密字符串敲回车即可看到加密和解密结果。待加密字符串不区分大小写。#原创 2021-03-16 12:16:12 · 483 阅读 · 2 评论 -
RSA加密算法
选两个保密的大素数p≠qp\not =qp=q;计算n=pq , ϕ(n)=(p−1)(q−1)n=pq\ ,\ \phi(n)=(p-1)(q-1)n=pq , ϕ(n)=(p−1)(q−1);选一整数eee使1<e<ϕ(n)1<e<\phi(n)1<e<ϕ(n)且gcd(ϕ(n),e)=1\gcd(\phi(n),e)=1gcd(ϕ(n),e)=1;de=1mod ϕ(n)de=1\mod\phi(n)de=1modϕ原创 2021-05-11 15:13:53 · 134 阅读 · 1 评论 -
用于加密和解密的数学函数
填空判断名词解释解答综合古典密码学分为:加密:以某种方法隐藏信息…非对称密钥算法概念:加密密钥和解密密钥不一致防火墙概念:密码算法:用于加密和解密的数学函数哈希函数的构造防御技术包含四个方面:防火墙,加密技术,分组密码的分析方法主要有:群概念:概述AES的轮加密过程防火墙处理数据的方法分为:求最大公约数GCD中国剩余定理同余方程组AES加密流程伪代码...原创 2021-07-04 12:25:26 · 1194 阅读 · 0 评论 -
欧几里得算法最大公约数 c语言代码带main函数的 python代码
辗转相除法又叫欧几里得算法:定理:两个数的最大公约数等于小数与这两个数除得余数的最大公约数。具体计算步骤如下????C#include <stdio.h>int gcd(int val1, int val2){ if (val1 == 0 || val2 == 0) return 0; do { int r = val1 % val2; val1 = val2; val2 = r; }原创 2021-04-15 16:25:33 · 333 阅读 · 0 评论 -
常见分布律、分布函数、概率密度表,伯努利分布、二项分布、泊松分布、几何分布、超几何分布、均匀分布、高斯分布、指数分布
# 离散型随机变量及分布律| 分布名称 $\qquad\qquad\qquad$ | 记法 $\qquad\qquad\qquad\qquad$ | 分布律 $\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad$ | 均值$E(X)$ $\qquad\qquad\qquad$ | 方差$D(X)原创 2021-08-04 19:23:01 · 30330 阅读 · 6 评论 -
栈实现计算器 中缀表达式转后缀表达式
逻辑实现计算器只需要一个栈。数值直接进入后缀表达式。运算符是否进入栈取决于其优先级是否大于栈顶运算符的优先级,如果大于则入栈,否则栈顶运算符出栈,重复比较直至其能入栈为止。计算时,后缀表达式的数值直接入栈。遇到运算符时每次从后缀表达式中取出一到两个数值参与运算,运算结果直接入栈。若后缀表达式扫描完毕后栈中仅存在一个数值,则这个值就是表达式的计算结果。????C语言实现计算器代码点此运行截图代码#!/usr/bin/env python# -*- coding: utf-8 -*-'''表原创 2021-06-01 22:04:31 · 271 阅读 · 3 评论 -
DQN伪代码
Q学习一种基于值的强化学习。function QLearning(θ\boldsymbol\thetaθ, A\mathcal AA, S全\mathcal S_全S全, mmm){ var QQQ = new arbitrarily; /* 随机选取mmm个状态 */ do{ var y\mathcal yy = new List(mmm); foreach(iii in S\mathcal SS.sample(mmm)){ var s\boldsymbol ss = Si\ma原创 2022-06-15 23:15:49 · 2202 阅读 · 1 评论 -
仿射加密
仿射加密最简单的加密方式之一。令P=C=K=Z26P=C=K=\textbf{Z}_{26}P=C=K=Z26对0≤K≤250\le K\le 250≤K≤25任意x,y∈Z26x,y\in \textbf{Z}_{26}x,y∈Z26定义e(x)=(ax+b)mod26e(x)=(ax+b)mod26e(x)=(ax+b)mod26、定义d(y)=a−1(y−b)mod26d(y)=a^{-1}(y-b)mod26d(y)=a−1(y−b)mod26,其中a−1a^{-1}a−1为aaa在Z26\原创 2021-03-11 22:51:14 · 246 阅读 · 0 评论 -
移位加密
位移加密最简单的加密方式之一,通过每一个字母映射至这个字母之后与之相隔一定数量个字母的字母来实现加密。代码python3输入待加密字符串敲回车即可看到加密和解密结果。待加密字符串不区分大小写。#!/usr/bin/env python# -*- coding: utf-8 -*-START = ord('a')CHAR_COUNT = 26OFFSET = 11MAP = {chr(v+START): chr(((v+OFFSET) % CHAR_COUNT)+STA原创 2021-03-11 21:32:00 · 2227 阅读 · 0 评论 -
认识最大熵模型
设X是取有限个值的随机变量,X∈{x1,x2,⋯,xn},i=1,2,⋯,n,则随机变量XH(X)=−i=1∑nP(X=xi)logaP(X=xi)H(X)作为X对应的随机场的不确定性的度量,代表了X所包含的信息量,也就是各个基本事件{X=xi}的平均信息量。与热力学中的熵不同,信息熵只能降低,不确定性被消除的过程不能逆向进行。设X∈{原创 2022-10-02 16:45:53 · 331 阅读 · 0 评论 -
设计一个虚拟存储区和内存工作区,并使用下列算法计算访问命中率:(1)进先出的算法(FIFO)(2)最近最少使用的算法(LRU)(3)最佳淘汰算法(OPT)(4)最少访问页面算法(LFU)
设计一个虚拟存储区和内存工作区,编程序演示下述算法的具体实现过程, 并计算访问命中率。设计要求:主界面以灵活选择某算法,且以下算法都要实现 1、先出的算法(FIFO)(2)最近最少使用的算法(LRU)(3)最佳淘汰算法(OPT)(4)最少访问页面算法(LFU)import timeimport sysimport randomfrom multiprocessing import *class Page: ''' 页面。 ''' def __init__(self原创 2021-02-12 22:55:58 · 7511 阅读 · 2 评论 -
MDP的决策迭代和值迭代
MDP(马尔可夫决策过程)给定当前状态ts^t\boldsymbol sts,未来t+1s^{t+1}\boldsymbol st+1s和过去t−1s^{t-1}\boldsymbol st−1s是独立的。对于MDP,行动ta^{t}\boldsymbol ata的结果t+1s^{t+1}\boldsymbol st+1s仅取决于当前状态ts^t\boldsymbol sts,而和过去没关系,这种特性有时被称为“无记忆性”。这个过程可以概括为五个部分: S\mathcal SS:状态集,S=原创 2022-03-24 20:13:19 · 2633 阅读 · 2 评论 -
欧几里得算法求乘法逆元 python代码
设x∈Zn,gcd(x,y)=1x\in \mathbb{Z}_n,gcd(x,y)=1x∈Zn,gcd(x,y)=1则xxx在Zn\mathbb{Z}_nZn上有乘法逆元。对xxx若存在yyy使x×y≡1modZnx\times y\equiv 1 \mathrm{mod}\mathbb{Z}_nx×y≡1modZn则yyy为xxx的乘法逆元。cpython3.8import numpydef euclid(v1: int, v2: int) -> tuple: """欧几原创 2021-04-20 09:43:09 · 829 阅读 · 2 评论 -
神经元是个啥子
空间平面的方程这是一个似曾相识的方程👇b+∑n=1Nxnθnin=0b+\sum_{n=1}^Nx_n\theta_n\bm{i}_n=0b+n=1∑Nxnθnin=0没错,它描述了空间中的一个平面。其关于每一个坐标轴都有斜率θi\theta_iθi,而in为这个轴方向的单位向量\bm{i}_n为这个轴方向的单位向量in为这个轴方向的单位向量。在N<=3N<=3N<=3时我们能将这个平面很直观地表达出来,但是当NNN更高的时候我们难以想象这个平面的样子,显然,没有人见过比原创 2022-04-30 22:26:35 · 397 阅读 · 2 评论 -
梯度下降法、牛顿法、EM算法
梯度下降法梯度:梯度是矢量,设函数f(x0,x1,⋯ ,xn)f(x_0,x_1,\cdots,x_n)f(x0,x1,⋯,xn)在空间中有一阶连续偏导数,对空间中的点P(a0,a1,⋯ ,an)P(a_0,a_1,\cdots,a_n)P(a0,a1,⋯,an)有向量g⃗=(∂f∂a0,∂f∂a2,⋯ ,∂f∂an)\vec{g}=(\frac{\partial f}{\partial a_0},\frac{\partial f}{\partial a_2},\cdots,\frac{\p原创 2021-05-29 21:08:34 · 534 阅读 · 2 评论 -
监督学习常见算法
判别学习算法和生成学习算法对于已知的特征X\boldsymbol{X}X,判别学习算法试图求出其所属类别或者属于一个类别yyy的概率。判别学习方法可以视为直接对P(Y∣X)P(\boldsymbol{Y}\mid \boldsymbol{X})P(Y∣X)进行建模或者直接学习样本的特征X\boldsymbol{X}X到分类Y\boldsymbol{Y}Y的映射关系。生成学习算法用新的样本去匹配已经拟合好的模型,其中匹配度较高的一个模型作为新样例的类别。是对条件概率P(Y∣X)P(\boldsymbol{原创 2021-05-08 22:05:04 · 3733 阅读 · 1 评论 -
图解人工神经网络 BP算法代码和注释
人工神经网络BP算法。使用神经网络时使用误差逆传播(简称BP)算法进行训练。误差逆传播算法是迄今为止最成功的神经网络学习算法。BP算法的工作流程如图所示:1、对每个训练样例,先将输入示例提供给输入层,然后逐层进行前向传播,直到输出层;2、计算输出层的误差并将误差逆传播给隐层神经元,根据隐层误差更新权值和阈值。3、循环迭代过程,直至收敛......例如import numpy as npimport matplotlib.pyplot as pypOUTPUT = 'output'SUM = 'sum原创 2021-03-06 20:26:57 · 2379 阅读 · 0 评论 -
GoogLeNet基础结构
Inception模块基础结构GoogLeNet在ILSRVRC 2014比赛(千分类问题)夺冠,由多个Inception模块组成。看起来,Inception模块试图使通过使不同的卷积序列对同一组输入进行处理来得到更丰富的特征。在Inception模块中,输入接受并联的1×1、3×3、5×5 convolution和3×3 max pooling层的处理以生成输出。采用不同大小的卷积层意在更好地处理多个尺度的对象。事实上更宽的网络能使一些训练结果改善。GoogLeNet v1 结构layer原创 2021-06-16 20:56:09 · 130 阅读 · 0 评论 -
秦九韶法求n次多项式值与函数指针
秦九韶是我国古代数学家的杰出代表之一,他的《数书九章》概括了宋元时期中国传统数学的主要成就,尤其是系统总结和发展了高次方程的数值解法与一次同余问题的解法,提出了相当完备的“正负开方术”和“大衍求一术”。对数学发展产生了广泛的影响。秦九韶是一位既重视理论又重视实践,既善于继承又勇于创新的科学家,他被国外科学史家称为是“他那个民族,那个时代,并且确实也是所有时代最伟大的数学家之一。一般地,一元n次多项式的求值需要经过(n+1)*n/2次乘法和n次加法,而秦九韶算法只需要n次乘法和n次加法。在人工计算时,一次大原创 2021-01-01 11:01:13 · 453 阅读 · 2 评论