关系运算

运算符

落爺英雄遲暮 提交于 2019-12-04 02:13:52
算术运算符 1.+ /相加运算,如果加数中有字符串,则+变为字符串拼接符 2.- /减运算符 3.* /乘运算符 4./ /除运算符 5.% /取模(余)运算符 赋值运算符 1.= /将等号右边的数给等号左边; 2.+= /例子:a += 1;等同a=a+1; 3.-= /用法同2 3.*= /用法同2 4./= /用法同2 5.%= /用法同2 关系运算符 关系运算符有: < , > , >= , <= , == , != 关系运算符的结果都是布尔量。 逻辑运算符 && /与运算 || /或运算 特性: 一般和关系运算符联用,运算结果为布尔数值 短路效应:对于&&关系只要第一个判定为flas则结果为flas不管后面的运算 条件运算/三目运算符 格式:条件?a:b; 当条件结果为 true取a的值, 当条件结果为 false取b的值。 自增运算符 自增运算符包括“++”与“--” 注意 :a++与++a不同 a++不会马上改变a的值,而是将a放入内存中,下次使用在变化。 ++a马上改变a的取值 移位运算符(二进制运算符) 二进制运算符包括"<<",">>"与">>>s" ">>"运算相当如数字减半 ">>"运算相当于数字翻倍 ">>>"该运算是在高位补零所以在对负数的运算中需要注意,该运算一般多用于加密运算 布尔运算符 布尔运算符包括'&','|','~','^' '&'

分组密码体制【密码学笔记】

与世无争的帅哥 提交于 2019-12-04 01:58:36
分组密码的基本概念 ​ 分组密码在加密过程中不是将明文按字符逐位加密,而是首先要将待加密的明文进行分组,每组的长度相同,然后对每组明文分别加密得到密文。加密和解密过程采用相同的密钥,称为对称密码体制。 ​ 例如将明文分为 \(m\) 块: \(P_{0},P_{1},P_2,…,P_{m-1}\) ,每个块在密钥作用下执行相同的变换,生成 \(m\) 个密文块: \(C_0,C_1,C_2,…,C_{m-1}\) ,每块的大小可以是任意长度,但通常是每块的大小大于等于64位(块大小为1比特位时,分组密码就变为序列密码)。 如下图所示是通信双方最常用的分组密码基本通信模型。 ​ 一个分组密码系统(Block Cipher System,简称BCS)可以用一个五元组来表示: \(BCS=\{P,C,K,E,D\}\) 。其中,P(plaintext)、C(ciphertext)、K(key)、E(encryption)、D(decode)分别代表明文空间、密文空间、密钥空间、加密算法、解密算法。 设 \(X=\{x_0,x_1,…,x_{n-2},x_{n-1}\}\) 为一组长度为 \(n\) 的明文块,在密钥 \(K=\{k_0,k_1,…,k_{t-1}\}\) 的加密作用下得到密文块 \(Y=\{y_0,y_1,…,y_{m-2},y_{m-1}\}\) ,其中 \(x_i,y

c++ 面试(100题刷题)

陌路散爱 提交于 2019-12-04 01:53:39
目录 1.C++与C的差异 1.1 C与c++中的struct的差异 1.4 c与c++ 不同之处 1.5 指针与引用的区别 1.6 sizeof 1.7 static 的作用域 1.8 c++ 中值传递的三种方式 1.9 inline 函数 1.10 virtual与inline 1.11 Debug和Release的区别 1.12 assert 1.13 const 与#define 1.14 malloc/free 与 new delete 1.15 动态申请内存耗尽 1.20 const 1.21 判断系统是多少位系统 1.22 1.23 1.24 实参与形参 1.25 计算精度误差 1.26 堆和栈 1.27 explicit与protected 1.28 浅拷贝与内存泄漏 ,深拷贝 1.30 数组名作为参数与int 作为参数的区别 1.31 程序的可读性与可维护性-变量 1.32 const 的用法 1.33 virtual 是如何实现多态的? 1.34 面向对象三大特性 1.35 重载 ,重写 ,重定义 1.36 一个空类的对象占的字节数 1.37 内联函数是否参数检查 1.38 析构函数与虚函数 1.40 c++模板编程的理解 1.41 函数模板与类模板 1.41 运算符重载 1.42 基类的析构函数为什么必须是虚函数? 1.43 c++的左值与右值 1.44

矩阵运算 [转]

两盒软妹~` 提交于 2019-12-03 20:08:51
原文地址: https://www.cnblogs.com/hanruyun/p/9620029.html 作者:子谦。 -------------------------------------------------------------------------------------------------------------------------------------------------------- 嗯,这玩意看着很难对吧,之前我还是这样想的。。直到看到了 斐波那契公约数 这道题 这道题一看我这种辣鸡就不会做啊,然后rqy告诉我这是傻逼题啊,我忽然就想起了以前听说过的矩阵乘。。然后懒惰的DDOSvoid大佬告诉我要做这道题,得先做 斐波那契数列 ,要做斐波那契数列,得先做 矩阵加速 ,要做矩阵加速,得先做 矩阵快速幂 。。于是,一个上午就这么过去了 回归正题 定义 什么是矩阵运算呢? 在理解这个问题前,我们先要知道什么是矩阵 百度百科给的定义如下 矩阵是一个按照长方阵列排列的复数或实数集合 复数实数什么的我们先不管,总之,矩阵就是一堆数,按照矩形排列形成的集合 那么,我们所需要记录的也就是它的长、宽以及矩阵中存储的元素 特殊的,长宽相等的矩阵我们定义它为方阵 当两个矩阵的长宽相等时,我们认为这两个矩阵为同型矩形 若矩阵为方阵,且对角线上的元素为1,其余均为0

快速看懂HashMap

余生颓废 提交于 2019-12-03 19:49:14
在开始之前,先过一遍本博客的重点 • HashMap寻值的速度快是因为HashMap的键会被映射成Hash值,从而避开用equal方法遍历来加快寻值速度。 • HashMap有初始容量和加载因子两个参数来控制性能。当条目大于容量*加载因子时,容量翻一倍。 • HashMap和Hashtable的区别在于线程安全性,同步,以及速度。 下面开始正文 1.HashMap的具体实现 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示: HashMap中我们最常用的就是put(K, V)和get(K)。我们都知道,HashMap的K值是唯一的,所以查询和修改数据的时候只要用equal遍历所有的key值就可以了,但我们知道直接遍历查询的时间复杂度为O(n),在数据量比较大时效率不高,所以在java中运用Hash算法来对所有的key进行运算加入数组中。查询的时候直接用数组下标来访问数据(时间复杂度变成了O(1)),以此绕开了用equal遍历带来的效率损失。 HashMap根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null

2.1-设计自己的计算机

风格不统一 提交于 2019-12-03 11:35:25
  什么是指令系统体系结构呢? 要回答这个问题,其实非常的简单。但是想解释清楚, 也没有那么容易。我们还是从一个小故事开始吧。   有一天两个小伙伴碰了面,发现对方都很愁苦,一个就问另一个"嘿你在愁苦什么呀?" 这个说"唉呀,最近遇到了很多运算上的问题。" "运算量好大呀。"对方说,"可不是吗,我也遇到了类似的问题。" "咱们怎么解决呢?" "不如咱们一起设计一个计算机吧!" 就说好啊,两人就一拍即和。 "我们设计计算机怎么分工呢?"一个说,"我显然是软件程序员,我来编写如何运算的软件指令。" 另一个说"那正好,我是硬件工程师,我来设计计算机的硬件,主要是CPU,那咱们就分头工作吧!" "这事估计得花一年时间才能把CPU设计出来,也才能把软件 写好。真的就可以这么开始了吗?一年之后我们在碰面,怎么保证你写的软件就能在我做的CPU上运行起来呢?" "所以还不能着急,咱们得商量商量,得把咱们的共同规则订 好,然后呢才能分头去设计软件和硬件,这样保证之后我们在碰面的时候软件和硬件能顺利的结合在一起。" 那好,这两个小伙伴就开始商量了,他们要商量的是什么呢? 就是我们要谈的指令系统体系结构。   他们要面临的计算任务并不复杂,所以只要一个很简单的计算机指令系统就可以了。 我们要设计多少指令、要设计哪些指令,首先要根据需求来确定。 那看上去我们只需要一些简单的加法。所以首先

C博客作业03--函数

假如想象 提交于 2019-12-03 09:58:14
1.展示PTA总分 函数: 2.本章学习总结 2.1. 学习内容总结 1.函数的定义 函数是一个完成特定工作的独立程序模块,包括库函数和自定义函数两种。例如,scanf()、printf()等为库函数,由C语言系统提供定义,编程时只要直接调用即可;而有时,我们需要一些能实现特定功能的函数,这时就需要用户自己定义,属于自定义函数。从函数实现计算功能角度来看,C语言的函数与数学上的函数概念十分接近。在C程序中必然为某一种数据类型,称其为函数类型。 函数定义的一般形式为: 函数类型 函数名(形式参数表) /*函数首部*/ { 函数实现过程 /*函数体*/ } 1.函数首部 函数首部由函数类型、函数名和形式参数表(以下简称形参表)组成,位于函数义的第一行。函数首部中,函数名是函数整体的称谓,需用一个合法的标识符表示。函数类型指函数结果返回的类型,一般与return语句中表达式的类型一致。形参表中给出函数计算所要用到的相关已知条件,以类似变量定义的形式给出,其格式为: 类型形参1,类型2 形参2,…,类型n形参n 形参表中各个形参之间用逗号分隔,每个形参前面的类型必须分别写明。函数的 参的数量可以是一个,也可以是多个,或者没有形参。 函数首部后面不能加分号,它和函数体一起构成完整的函数定义。 2.函数体 函数体体现函数的实现过程,由一对大括号内的若干条语句组成,用于计算,或完成特定的工作

day17-几何关系运算交,差,并集.py

五迷三道 提交于 2019-12-03 08:28:55
# #!/user/bin/env python# # -*- coding:utf-8 -*-# python = ['ww', 'xx', 'yy']# linux = ['ww', 'xx', 'xz', 'zz', 'zd']# python_and_linux = []# for i in python:# if i in linux:# python_and_linux.append(i)# print(python_and_linux)## # 求交集# p_n = set(python)# l_n = set(linux)# print(p_n.intersection(l_n))# print(p_n & l_n)## python = ['ww', 'xx', 'yy']# linux = ['ww', 'xx', 'xz', 'zz', 'zd']# p_n = set(python)# l_n = set(linux)# l_n.difference_update(p_n)# print(l_n)## python = ['ww', 'xx', 'yy']# linux = ['ww', 'xx', 'xz', 'zz', 'zd']# p_n = set(python)# l_n = set(linux)# p_n.difference_update(l

day2------运算符和编码

我怕爱的太早我们不能终老 提交于 2019-12-03 07:46:54
运算符和编码 一. 格式化输出 现在有以下需求,让用户输入name, age, job,Gender 然后输出如下所示: ------------ info of Yong Jie ----------- Name : Yong Jie Age : 19 job : Programmer Gender: Boy ------------- end ----------------- 你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦 name = input("Name:") age = input("Age:") job = input("Job:") Gender = input("Gender:") info = ''' ------------ info of %s ----------- #这里的每个 %s就是一个占位符 ,本行的代表 后面拓号里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Gender: %s #代表 Gender ------------- end -----------------

多周期CPU设计与实现

匿名 (未验证) 提交于 2019-12-03 00:39:02
设计一个多周期CPU,该CPU至少能实现以下指令功能操作。指令与格式如下: ==> 算术运算指令 1. add rd , rs, rt (说明:以助记符表示,是汇编指令;以代码表示,是机器指令) 000000 rs(5λ) rt(5λ) rd(5λ) reserved 功能:rd←rs + rt。reserved为预留部分,即未用,一般填“0”。 2. addi rt , rs ,immediate 000010 rs(5λ) rt(5λ) immediate(16λ) 功能:rt←rs + (sign-extend)immediate;immediate符号扩展再参加“加”运算。 3. sub rd , rs , rt 000001 rs(5λ) rt(5λ) rd(5λ) reserved 功能:rd←rs - rt ==> 逻辑运算指令 4. ori rt , rs ,immediate 010010 rs(5λ) rt(5λ) immediate(16λ) 功能:rt←rs | (zero-extend)immediate;immediate做“0”扩展再参加“或”运算。 5. and rd , rs , rt 010001 rs(5λ) rt(5λ) rd(5λ) reserved 功能:rd←rs & rt;逻辑与运算。 6. or rd , rs , rt