【密码学原理与实践】(五)希尔密码
希尔密码(Hill Cipher)定义设m>=2为正整数,P=C=(Z26)m,且K={定义在Z26上的m×m可逆矩阵},对任意的密钥K,定义:ek(x)=xK和dk(y)=yK-1 ,以上运算都是在Z26上进行的。从一个例子开始希尔密码的学习。引例设m=2,每个明文单元使用x=(x1,x2)来表示,同样密文单元使用y=(y1,y2)来表示。具体加密中,y1,y2被表示x1,x2的线性组合。例如:y1=(11x1+3x2)mod26y2=(8x1+7x2)mod26使用矩阵,可将上
【密码学原理与实践】(六)置换密码 符java代码实现
置换密码置换密码与前面的代换密码是不一样的,置换密码是保持明文的所有字母不变,只是利用置换打乱了明文字母的位置和次序。首先需要明白,置换既是单射又是满射定义令m为一正整数,P=C=(Z26)m(Z_{26})^m(Z26)m,K是左右定义在集合{1,2…m}上的置换组成,对任意的秘钥π,定义:ex(x1,x2...xm)=(xπ(1),xπ(2),...xπ(m))e_x(x_1,x_2...x_m)=(x_{π(1)},x_{π(2)},...x_{π(m)})ex(x1,x2...xm
【密码学原理与实践】(七)流密码 符java代码实现
流密码前面几种密码都是连续的明文元素是使用相应的密钥K来加密的,即明文串使用如下方法得到y=y1y2...=ek(x1)ek(x2)...y=y_1y_2...=e_k(x_1)e_k(x_2)...y=y1y2...=ek(x1)ek(x2)...这种类型的密码体质通常称为分组密码。还有一种广泛使用的密码体质称为流密码,其基本思想是产生一个密钥流z=z1z2...z=z_1z_2...z=z1z2...然后使用它根据如下的规则来加密明文串x=x1x2...x=x_1x_2...x=x1
【ERROR】ValueError: Of the four parameters: start, end, periods, and freq, exactly three must be spec
ValueError: Of the four parameters: start, end, periods, and freq, exactly three must be specified错误写法:print(pd.date_range(start='20201001',end='20201203',periods=5,freq='2D'))start,end,periods,freq这4个参数只能设置3个,否则会报错pandas中源码如下: if com.count_not_none(
【杂记】互联网行业常用指标
PV(Page Views):页面浏览数,通常指的是每天的点击数,用户访问一次网站的页面就算一次PV。如果说一个网站每天有100万PV,那就是说这个网站所有的网页每天一共被点击100万次。UV(Unique Visitors):独立用户数(浏览数),通常指的是每天的用户浏览数,与PV的不同之处是,一个相同的用户如果点击页面10次,算10个PV,但是只算1个UV。有的网站在没有用户体系的情况下有可能会用独立IP来代替这个指标。DAU(Daily Activated Users):日活跃用户数,即每天
【人工智能】人工智能学习常用数据集
https://storage.googleapis.com/openimages/web/download.htmlhttp://cocodataset.org/#downloadhttp://www.data.gov/about
【人工智能】人工智能学习常用社区
github社区eg:https://github.com/tensorflow/models/tree/master/research/object_detection这里包含了TensorFlow官方的目标检测实例,包含文档 代码 结果Kaggle平台全球最大的数据科学与机器学习竞赛平台Gluon中文论坛...
【Python学习笔记】1.Python简介
本系列为自己学习Python的笔记,如有误,欢迎大家指正。Python介绍简介Python是一种解释型、面向对象的语言。由吉多-范罗苏姆(Guido van Rossum)于1989年发明,1991年正式公布,官网地址:https://www.python.orgPython单词的大蟒蛇的意思,但是龟叔不是喜欢蟒蛇才起的这个名字,而是正在追剧:应该电视喜剧片(Monty Python and the Flying Circus)使用www.python.org提供的interactive sh.
【Python学习笔记】2.Python学习入门
本系列为自己学习Python的笔记,如有误,欢迎大家指正。Python开发入门Python下载安装和配置进入官网www.python.org/downloads/根据安装平台(Windows 、Linux、MAC OS)选择合适的版本下载安装(和一般的软件安装没啥区别)环境变量问题勾选:“Add Python to environment variable”.这样就会将Python添加到环境变量Path中,我们可以在windows的命令行模式下运行Python解释器问题:.
【Python学习笔记】03一个图形化程序的小例子
本系列为自己学习Python的笔记,如有误,欢迎大家指正。图形化程序设计为了更容易的了解python我们从海龟画图开始学习。# -*- coding: utf-8 -*-"""Created on Fri Dec 25 22:19:05 2020@author: Administrator"""import turtle # 导入turtle模块turtle.showturtle() #显示箭头turtle.write('slp') #写字符串turtle.forward(30.
【Python学习笔记】04 程序的构成
本系列为自己学习Python的笔记,如有误,欢迎大家指正。Python程序的构成Python程序由模块组成。一个模块对应python源文件,一般后缀名是.py模块由语句组成,运行python时,按照模块中语句的顺序依次执行语句是Python程序的构造单元,用于创建对象,变量赋值、调用函数、控制语句Python文件的创建和执行在交互式环境中,每次只能执行一条语句,为了编写多条语句实现复杂的逻辑,我们通过创建python文件,并执行文件。具体根据你使用的python开发工具而有所差别,但基本.
【工具】Movielens数据集详细介绍
MovieLens数据集MovieLens数据集包含多个用户对多部电影的评级数据,也包括电影元数据信息和用户属性信息。下载地址http://files.grouplens.org/datasets/movielens/介绍下面以ml-100k数据集为例进行介绍:最主要用的是u.data(评分) | u.item(电影信息) | u.user(用户信息)下载之后各文件具体含义如下:各文件含义如下:allbut.pl --生成训练和测试集的脚本,其中除了n个用户评分之外,所有训
Java语言程序设计(十八)对象和类的理论定义
1. 为对象定义类 1.类为对象定义属性和行为。 2.面向对象程序设计(OOP)就是使用对象进行程序设计。对象(object)代表现实世界中可以明确标识的一个实体。比如:一个学生,一张桌子,一个圆甚至一笔贷款都可以看作是一个对象。每个对象都有自己独特的标识、状态和行为。 一个对象的状态(state,也称为特征(property)和属性(attribute))是由具有当前值的数据域来表
Java语言程序设计(十七)多维数组的声明创建以及方法传递
之前我们介绍过一维数组来存储线性的元素集合,我们可以用二维数组存储矩阵或表格。 1.声明二维数组变量并创建二维数组 下面是声明二维数组的语法:数据类型[][]数组名;例如int[][] matrix;可以使用这个语法创建5*5的int型二维数组,并将它赋值给matrix; int[][] matrix = new int[5][5]; 二维数组中使用两个下标
Java语言程序设计(十六)数组的查找与排序
1.可变长参数列表 我们可以把参数相同但个数可变的参数传递给方法,方法中的参数声明如下: type...parameterName(类型名。。。参数名),在方法声明中,指定类型后紧跟着省略号,只能给方法中指定一个可变长参数。任何常规参数必须在它之前,Java将可变长参数当成数组对待。可以将一个数组或可变的参数个数传递给可变长参数。 2.数组的查找 查找是在数组中寻找
Java语言程序设计(十五)通过Java语言读取文本文件.txt
Java语言读取文本txt 文本文件读取的大致过程如下:(1)构建文件对象,(2)使用文件对象构造Reader对象可以是FileReader、InputStreamReader等使用Reader对像构建BufferedReader对象(主要使用其readLine()方法,用于按行读取文件)(3)按行读取文件,将每行获取到的字符串进行处理。我通常使用InputStreamReader。类名我设为D
Java语言程序设计(十四)递归算法应用实例,以及数组的复制,传递,返回
1.数组的复制 在程序中,经常需要复制一个数组或数组的一部分,这种情况下,我们首先想到的可能是会尝试使用赋值语句:list1=list2;不过这种语句并不能将list1引用的数组内容复制给list2,而只是将list1的引用值复制给了list2,在这条语句过后,list1和list2都指向了同一个数组,list2原先引用的数组会被自动收回。 Java中,可以使用赋值语句复制基
Java语言程序设计(十三)数组及乐透问题的解决
在执行程序的过程中,经常需要存储大量数据,例如需要读取100个数,计算他们的平均值,然后找出有多少个数大于平均值,首先,程序需要读入这些书并计算他们的平均值,然后每个数与平均值及逆行比较判断它是否大于平均值,为了实现这样的功能,我们必须选择将这些数全部存储到变量中,必须声明100个变量,这时候我们需要一个方法,Java语言提供了一种称为数组(array)的数据结构,用它来存储一个元素个数固定且元
Java语言程序设计(十二)Math数学类,方法重载及变量作用域
1.重载方法 上一篇文章用到的max方法只能用于int型数据类型,但是如果需要决定两个浮点数中哪个较大,解决方法是创建另一个方法名相同但参数不同的方法,代码如下: public static double max(double num1, double num2){ if(num1>num2) return num1;
今日推荐
周排行