关系运算

运算符详解

萝らか妹 提交于 2019-12-05 17:03:49
异或(^)、异或和 的性质及应用总结 异或的含义 异或运算与一般的逻辑或不同,异或算符的值为真仅当两个运算元中恰有一个的值为真,而另外一个的值为非真。转化为命题,就是:“两者的值不同。”或“有且仅有一个为真。”符号为 XOR 或 EOR 或 ⊕(编程语言中常用 ^ )。 或在数学中的含义:一个元素在集合A中或在集合B中,或的维恩图如下: 而异或是不允许共存的,所以 A ^ B 的维恩图如下: 同理对于 A ^ B ^ C 维恩图: 异或运算{\displaystyle A\oplus B} 的真值表如下:F表示false,T代表true A B ⊕ F F F F T T T F T T T F A B ⊕ 0 0 0 1 1 1 1 0 1 1 1 0 任何数异或自己=把自己置0 异或的性质:满足交换律和结合律 交换律:A ^ B = B ^ A; 结合律:A ^ (B ^ C) = (A ^ B) ^ C; 恒等律:X ^ 0 = X; 归零律:X ^ X = 0; 自反:A ^ B ^ B = A ^ 0 = A; 对于任意的 X: X ^ (-1) = ~X; 如果 A ^ B = C 成立,那么 A ^ B = C,B ^ C = A; 异或的应用 1-1000放在含有1001个元素的数组中,只有唯一的一个元素重复,找出这个重复的数字

【java虚拟机】Java内存模型

梦想与她 提交于 2019-12-05 09:57:31
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/7518259.html 一、什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 在此之前,主流程序语言(如C/C++等)直接使用物理硬件和操作系统的内存模型,因此,会由于不同平台上内存模型的差异,有可能导致程序在一套平台上并发完全正常,而在另外一套平台上并发访问却经常出错,因此在某些场景下就不许针对不同的平台来编写程序。 Java内存模型即要定义得足够严谨,才能让Java的并发内存访问操作不会产生歧义;Java内存模型也必须定义地足够宽松,才能使得虚拟机的实现有足够的自由空间去利用硬件的各种特性来获取更好的执行速度。经过长时间的验证和修补,JDK1.5(实现了JSR-133)发布之后,Java内存模型已经成熟和完善起来了,一起来看一下。 二、主内存和工作内存 Java内存模型的主要目的是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。注意一下,此处的变量并不包括局部变量与方法参数,因为它们是线程私有的,不会被共享,自然也不会存在竞争,此处的变量应该是实例字段

shell 基本语法

喜夏-厌秋 提交于 2019-12-05 09:27:58
shell 基本语法 jenkins 上构建项目时,经常需要借助 shell 脚本,最近也经常跟服务器打交道,顺便记录些常用命令,方便查阅 语法-变量 # 定义变量 name='dasu' # 使用变量 echo $name # dasu echo "I am ${name}." # I am dasu. xxx='dasu' 用 key=value 形式定义变量, = 等号两边不能有空格 $xxx 或 ${xxx} 变量名前加个 $ 使用变量,大括号省略也可以 语法-字符串 # 字符串使用 name='dasu' name2="dasu" name3=dasu echo "$name $name2 $name3" # dasu dasu dasu # 字符串长度 echo ${#name} #4 # 注意,shell 里都是命令 'dasu' # dasu: command not found # 获取子字符串 echo ${name:0:2} # da # 寻找字符 echo `expr index $name s` # 3 下标从1开始 'dasu' "dasu" dasu 单引号 、 双引号 、甚至 不加引号 都会被作为字符串使用 单引号里的字符串不做任何处理工作,是什么就原样输出 双引号里如果有表达式、有转义符,有变量,会先进行处理,最后再输出,所以字符串的拼接

JavaScript基础入门01

荒凉一梦 提交于 2019-12-05 08:44:58
JavaScript能用来做什么? 页面分为:结构、样式、行为。 JavaScript的组成: ECMAScript、BOM、DOM ECMAScript是一个标准,它规定了语法、类型、语句、关键字、保留子、操作符、对象。(相当于法律) BOM(浏览器对象模型):可以访问浏览器窗口的浏览器对象模型,对浏览器窗口进行操作。 DOM(文档对象类型):DOM把整个页面映射成一个多层节点结构。HTML页面组成都是某种类型的节点,这些节点又包含着不同类型的数据   js代码位置   首先是如何编写 JavaScript 代码,说到这,我们首先要来说明一个需要新人们关注的点,因为我们的 js 是一门 跨平台 的语言,所以说,我们的代码可以运行在不同的 平台 之上。这也就导致了可能相同的代码放在不同的平台运行就会有所出入。 这里面说的平台其实被称之为 宿主环境 。   同时,代码在不同的平台上的运行方式也有所不同。   如果运行在 服务端 ,那么更多的时候我们需要通过命令行的形式去运行,而如果是代码运行在 客户端 ,则需要通过启动 浏览器 来运行代码。   我们在学习的初期建议是在 浏览器 中运行代码,减少学习成本。   首先,我们的 js 代码可以写在 script 标签内部并且将 script 标签放在网页的任何位置。    外联JS的写法为: <script src="相对路径"><

[ch01-03]神经网络基本原理

醉酒当歌 提交于 2019-12-05 04:14:43
系列博客,原文在笔者所维护的github上: https://aka.ms/beginnerAI , 点击star加星不要吝啬,星越多笔者越努力。 前言 For things I don't know how to build, I don't understand. 如果我不能亲手搭建起来一个东西,那么我就不能理解它。 -- 美国物理学家理查德·费曼 在互联网发达的今天,很多知识都可以从网络上找到,但是网络上的博客、文章的质量参差不齐,或者重点不明确,或者直接把别人的博客抄袭过来。这种状况使得广大的初学者们学习起来很困难,甚至误入歧途,增加了学习曲线的陡峭程度。当然也有很多博主非常非常负责任,文章质量很高,只是连续度不够,正看得过瘾的时候,没有后续章节了,无法形成知识体系。 初学者也可以选择看一些教材或者理论书籍,但是,一个鸡生蛋蛋生鸡的问题出现了:如果你不懂,那么看完了理论你还是不会懂;如果你懂了,那么你就没必要看理论。这也是很多教材或者理论书籍的缺憾。 笔者也看过吴恩达老师的课,理论知识讲得由浅入深,还是非常清楚的,虽然代码示例基本没有,但仍然强烈建议大家去看。笔者的心得是:视频可以事先缓存在手机中,利用一些时间片段就可以学习了。 社会上还有一些网课,在线讲解深度学习的知识,笔者也参加了几个团购,老师和助教一般都很负责任,最后可以回看录像,下载PPT课件

day01 Python基础02_20181223

不羁岁月 提交于 2019-12-05 00:08:01
一. 格式化输出 现有一练习需求,问用户的姓名、年龄、工作、爱好 ,然后打印成以下格式 ------------ info of 太白金星 ----------- Name : 太白金星 Age : 22 job : Teacher Hobbie: girl ------------- end ----------------- 你怎么实现呢?你会发现,用字符拼接的方式还难实现这种格式的输出,所以一起来学一下新姿势 只需要把要打印的格式先准备好, 由于里面的 一些信息是需要用户输入的,你没办法预设知道,因此可以先放置个占位符,再把字符串里的占位符与外部的变量做个映射关系就好啦 name = input("Name:") age = input("Age:") job = input("Job:") hobbie = input("Hobbie:") info = ''' ------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name Name : %s #代表 name Age : %s #代表 age job : %s #代表 job Hobbie: %s #代表 hobbie ------------- end ----------------- ''' %(name,name,age,job

10.1代数结构

天涯浪子 提交于 2019-12-04 13:40:40
代数结构(Mathematical Structures) 定义:具有在对象上定义操作的对象集合及其附带属性构成代数结构或代数系统。(Note:这里我们只处理离散的代数结构) 如:[sets, ∩, ∪, -]; [ 3 × 3的矩阵, +, *, T]等 二元运算(Binary operation) 定义:对两个对象进行操作的运算称为二元运算 封闭律(Closure) \(设集合S有二元运算 * ,若对S中的任意两个元素a_1、a_2,都有:a_1 * a_2 ∈ S,则称运算 * 对集合S封闭\) 交换律(Commutative) \(交换律也称为阿贝尔律(Abel律),设有代数(S, *),若对任意a_1,a_2∈S,都符合等式:a_1 * a_2 = a_2 * a_1, 那么称代数(S, *)运算符合交换律\) \(容易得到:若(S, *)运算符合交换律,那么对于运算序列a_1*a_2*...*a_n,设θ(12...n)为任意重排列,那么有:\) \(a_{θ(1)}*a_{θ(2)}*...*a_{θ(n)} = a_1*a_2*...*a_n\) 结合律(Associative) \(结合律也称为卡特兰律(Catalan律),设有代数(S, *)对任意a_1,a_2,a_3∈S,都符合等式:(a_1*a_2)*a_3=a_1*(a_2*a_3)\) , 则称代数(S

DataBaseSystem:Relational Data Structure

故事扮演 提交于 2019-12-04 09:48:57
本篇内容来自《数据库系统概论(第五版)》(王珊 萨师煊),主要是整理数据库的基本概念,供自己复习查阅。 关系数据库 关系数据库就是基于关系模型的数据库系统。关系模型包含三部分: 关系数据结构 、 关系操作集合 、 关系完整性约束 。 关系数据结构 关系数据结构只包含一种数据结构——关系,从逻辑结构上看,关系就是一张 二维表 。前面提到,关系模型是基于严格的数学概念形成的数据模型,而关系的基础就是 集合论 。故需要从集合论角度理解关系数据结构的形式化定义。 域(domain) 域是一组具有相同数据类型的值的集合。如常见的自然数域N、实数域R。一个域的不同取值的个数称为这个域的 基数 。 笛卡尔积(Cartesian product) 笛卡尔积是一种 集合运算 ,定义如下: \[ \begin{aligned} &对于给定的一组域D_1,D_2,...,D_n,不要求域互异,D_1,D_2,...,D_n的笛卡尔积为\\ &D_1\times D_2\times...\times D_n=\{(d_1,d_2,...,d_n)|d_i\in D_i,i=1,2,...,n\} \end{aligned} \] 笛卡尔积运算的结果也是一个域,它的基数等于各域基数的积。 关系 定义 \[ \begin{aligned} &D_1\times D_2\times ...\times D

初学者对Java类、java文件、class文件的名字的关系和\"&\"与\"&&\"之间区别的理解

僤鯓⒐⒋嵵緔 提交于 2019-12-04 04:25:19
一.Java类、Java文件、class文件的名的关系 在明白区别与联系时,我们需要对这些名词有了解: Java类名:Java属于面向对象编程语言,对象就是一个个类,所以Java类名是我们在编写程序时为我们定义的对象取的名字。 java文件名:对于编写的Java程序我们需要有个文件来保存,保存的文件后缀为.java,.java前的便是Java文件名。 class文件名:Java程序要查看结果便需要运行.class文件。.class前面的便是class文件名 。 在Java程序的开发过程中,我们需要先定义一个类-取一个类名,然后将其保存在.java文件中,对.java文件编译后形成.class文件。实际上三者的名字是相同的,在Java的定义中文件名必须与类名相同,而.class文件是.java文件编译后的文件名字没改变。 二.&与&&的区别 区别: 两者的归类不同。&属于位运算符,&&属于逻辑运算符。 两者处理方式不同:&运算是将false当做0、true当做1,在对其进行与运算,看结果。&&则是就boolean量进行运算。 两者特性不同:&&有短路效应,&没有短路效应。 短路效应:&&运算只要第一个判定为flas则结果为flas后续运算忽略 来源: https://www.cnblogs.com/-Archenemy-/p/11831125.html

python变量和运算

耗尽温柔 提交于 2019-12-04 04:05:51
本文收录在 Python从入门到精通系列文章系列 1. 指令和程序 计算机的硬件系统通常由五大部件构成,包括: 运算器、控制器、存储器、输入设备和输出设备 。 其中,运算器和控制器放在一起就是我们通常所说的中央处理器,它的功能是执行各种运算和控制指令以及处理计算机软件中的数据。我们通常所说的程序实际上就是指令的集合,我们程序就是将一系列的指令按照某种方式组织到一起,然后通过这些指令去控制计算机做我们想让它做的事情。 今天我们大多数时候使用的计算机,虽然它们的元器件做工越来越精密,处理能力越来越强大,但究其本质来说仍然属于 “ 冯 · 诺依曼结构 ” 的计算机。 “ 冯 · 诺依曼结构 ” 有两个关键点,一是指出要将存储设备与中央处理器分开,二是提出了将数据 以二进制方式编码 。 二进制是一种 “ 逢二进一 ” 的计数法,跟我们人类使用的 “ 逢十进一 ” 的计数法没有实质性的区别,人类因为有十根手指所以使用了十进制(因为在数数时十根手指用完之后就只能进位了,当然凡事都有例外,玛雅人可能是因为长年光着脚的原因把脚趾头也算上了,于是他们使用了二十进制的计数法,在这种计数法的指导下玛雅人的历法就与我们平常使用的历法不一样,而按照玛雅人的历法, 2012 年是上一个所谓的 “ 太阳纪 ” 的最后一年,而 2013 年则是新的 “ 太阳纪 ” 的开始,后来这件事情被以讹传讹的方式误传为