离散数学

数学之美笔记(六)

淺唱寂寞╮ 提交于 2020-12-13 10:54:47
欧拉七桥问题是图论的开始。 如果一个图能够从一个顶点出发,每条边不重复的遍历一遍回到这个定点,那么顶点度必须为偶数。 广度优先搜素(Breadth-First Search):尽可能“广”的访问每个节点直接连接的其他节点。 深度优先搜索(Depth-First Search):一条路走到黑。 网络爬虫(Web Crawlers)是通过超链接,从任意一个网页出发,用图的遍历算法,自动的访问到每一个网页并把它们存起来的程序。 第一个网络爬虫——网络漫游者是由麻省理工学院的马休 · 格雷写成。 如何构建一个网络爬虫? 用BFS还是DFS?网页爬虫对网页遍历从次序有一个相对复杂的下载优先级排序的子系统即调度系统。当然在调度系统里要存储那些已经发现但是尚未下载的网页的URL,他们一般存在一个优先级队列,而用这种方式遍历互联网,在工程上和BFS更相似。但也不是不用DFS,对于某个网站一般是由特定的一台或者几台服务器专门下载。这些服务器下载完一个网站,然后再进入下一个网站,而不是每个网站轮流下载5%,然后回过头来下载第二批。 页面的分析和URL的提取。 记录哪些网页已经下载过的小本本——URL表。 采用哈希表的好处是判断一个网页的URL是否在表中,平均只需要一次的查找。如果遇到没有下载的网页,除了下载该网页,还需要在下载完成后,将这个网页的URL存到哈希表中。 而多个服务器维护一张哈希表

离散数学——数论算法

百般思念 提交于 2020-04-06 06:21:56
最近在复习离散数学,这篇文章是《离散数学及其应用》第六版中第三章 算法、整数、和矩阵中涉及到的几个算法,我想了一下,光看看也起不到什么作用,于是自己动手写了一下,下面的代码都是我自己按照书上的伪代码写出来的,初步验证没什么问题,如果有什么问题就请告知我一下,谢谢! 一、十进制到任意进制数据转换   根据进制转换规则:十进制到n进制整数部分除n取余向上书写,小数部分乘n取整向下书写,实际上整数部分就是用的短除法,这个算法实际上就是贪心算法的一个实例,由于是向上书写,我们可以借助栈这种特殊的数据结构很方便的就可以实现向上书写了:       #include<iostream> #include<stack> #include<stdlib.h> std::stack<int> converson(int n,int base){   if(10==base)     exit(1);   if(base<=1)     exit(1);   std::stack<int> result;   int temp;   while(n){     temp=n%base;     result.push(temp);     n/=base;   }   return result; } int main(){   int data=241;   std::stack<int>

149.集合论

女生的网名这么多〃 提交于 2020-03-14 11:08:04
集合论是研究集合一般性质的数学分支,它的创始人是康托尔 现代数学中,每个对象(如数,函数等)本质上都是集合,都可以用某种集合来定义,数学的各个分支,本质上都是在研究某种对象集合的性质。集合论已成为现代全部数学的理论基础。 集合论的特点是研究对象的广泛性,它总结出由各种对象构成的集合的共同性质,并用统一的方法来处理。因此,集合论被广泛地应用于各种科学和技术领域。 由于集合论的语言适合于描述和研究离散对象及其关系,所以它也是计算机科学与工程的理论基础,而且在程序设计,数据结构,形式语言,关系数据库,操作系统等都有重要应用。 1.集合 1.1定义 集合:具有某种特殊性质的客体的聚合。 集合用大写的字母标记, 例如:A、B、C…… 元素:属于任何集合的任何客体。 元素用小写字母标记, 例如:a、b、c、…… 注意: ①元素与集合间的关系: 若 a 是集合 S 中的元素,则可写成 a∈ S ;  若b不是集 S 合中的元素,则可写成 b∈ S 。 ②集合 S 的 基数(势) :S中的元素个数。记为 |S| . ③有限集合:集合的基数(元素)是有限的。 无限集合:集合的基数(元素)是无限的。 常用集合符: I m (m≥1) 有限个正数的集合{1,2,3……m} N m (m≥0) 有限个自然数的集合{0,1,2……m} 以上是有限集合,下面是无限集合: N 自然数集合{0,1,2……} I+

离散数学

最后都变了- 提交于 2020-03-11 14:16:10
Week1: 公式: n=log a x ==> a n =x; a log a x =x; log a 1=0; log a a=1; log b x=(log b a)·log a x; a|b: 表示a整除b,等价于存在c使得b=ac,这里a、b、c均是整数; a ≡ b (mod m): 两个整数a,b,若它们除以整数m所得的余数相等,则称a,b对于模m同余 ; 与(&)运算 0&0=0,0&1=0,1&0=0,1&1=1; 非(~)运算 1取0,0取1; 或(|)运算 0&0=0,0&1=1,1&0=1,1&1=1; 异或(^)运算 0&0=0,0&1=1,1&0=1,1&1=0 bit manipulation(位操作) Turn some bits on(变为1) Turn some bits off(变为0) Flip some bits (互换位置) 例如: 有个4位的X=1100和隐藏的(第0位和第2位)M=0101 Turn on bits 0 and 2:  X|M=1101 Turn off bits 0 and 2;  X&(~M)=1000 Flip bits 0 and 2:   X^M=1001 Wee2: 公式: log a (x p )=plog a x log a (x·y)=log a (x)+log a (y) log a (x 3 )

简单的离散数学趣味题(乙猜甲手中的棋子颜色)

回眸只為那壹抹淺笑 提交于 2020-03-04 19:19:15
    最近在上离散数学的网课,老师提到了这道题,我看了几遍终于理解意思了(太笨了没办法),在此作个小记录。 原题:甲手里有一个围棋子,要乙来猜棋子的颜色是白的还是黑的。条件是:只允许乙问一个只能回答“是”或“否”的问题,但甲可以说真话,也可以说假话。问乙可以向甲提出一个什么问题, 然后从甲回答“是”或“否”中就能判断出甲手中棋子的颜色? 第一步:明确目标     甲回答“是”,无论他说的真话还是假话,棋子一定是白色;甲回答否,棋子一定是黑色。 第二步:设计命题,构建真值表 (1)设P:棋子是白色;Q:甲说了真话 (2)真值表 P Q 实际情况 1 1 1 1 0 1 0 1 0 0 0 0     显然这个真值表满足我们的要求,即只要棋子是白色,那么无论甲说的真话还是假话,实际颜色一定是白色。     问题就转化成根据真值表构造命题了,这种真值表非常常见,如P←→Q。     可以问甲:棋子是白色当且仅当你说了真话,这是真的吗? 来源: CSDN 作者: qq_26589641 链接: https://blog.csdn.net/qq_26589641/article/details/104655061

学习笔记2.26

纵然是瞬间 提交于 2020-02-27 02:28:37
2.26 9—11:30 看《Java疯狂讲义》 笔记: 15:00—17:30 上网课 :离散数学 看数据结构与算法 19:30—22:00 看数据结构与算法 散列查找 写博客 https://blog.csdn.net/huyidai/article/details/104521403 心得:离散数学 的第一节课感受到这是一门可以提高抽象思维和逻辑推理能力的课程,对程序语言设计与数据结构基础都是必不可少的课程。 来源: CSDN 作者: huyidai 链接: https://blog.csdn.net/huyidai/article/details/104523771

离散数学知识点总结

二次信任 提交于 2020-02-16 01:22:17
一、知识框架图 二、数理逻辑 1.命题符号化 命题:能判断真假的陈述句 命题包含两个要素:陈述句,能判断真假 命题题符号化的步骤: 1 )对于不太好理解的联结词或表达方式,如有必要,做适当的文字翻译。 2 )找出其中所有的原子命题并符号化。 3 )用适当的联结词将原子命题连接起来,如有必要,在适当位置配上括号。 2.真值表 设A是一命题公式, P1,P2.... Pn,为出现在A中的所有命题变元,对P1.P2....Pn,各指定-一个真值,称为对A的一种指派或赋值。 若指定的一种指派使A的值为真,则称这组值为A的成真指派(成真赋值) 若指定的一种指派使A的值为真,则称这组值为A的成假指派(成假赋值) 3.命题公式的等值演算 设A和B是两个命题公式,设P1,P2....Pn为所有出现于A和B中的原子变元,若给定P1,P2....Pn,任一 组真值指派A和B的真值都相同,则称A和B是等值的或等价的,记为A<=>B。 证明两个命题公式等价的方法: 方法1:真值表法。 方法2:等值演算法。 4.命题公式类型 设A是任一命题公式。 若对A的任意赋值,其真值永为真,则称命题公式A为重言式或永真式。 若对A的任意赋值,其真值永为假,则称命题公式A为矛盾式或永假式。 若A不是矛盾式,则称命题公式A为可满足的。 由定义可以看出,任何重言式都是可满足的。 5.极小项与极大项 极小项:在简单合取式中

【离散数学】编程练习:求关系的传递闭包

北城以北 提交于 2020-01-26 11:15:47
输入 一次输入一个关系矩阵,每一行两个相邻元素之间用一个空格隔开,输入元素的行与列分别对应关系矩阵的行与列。关系的基数小于12。 输出 输出该关系的传递闭包所对应的关系矩阵。 友情提示:可以使用while (scanf("%d",&a)!=EOF) # include <stdio.h> # include <math.h> # define MAX 101 int main ( ) { int data [ MAX ] ; int trans [ MAX ] [ MAX ] ; int n = 0 , i = 0 , k = 0 , j = 0 ; while ( scanf ( "%d" , & data [ n ] ) != EOF ) n ++ ; int * p = data ; for ( i = 0 ; i < sqrt ( n ) ; i ++ ) { for ( j = 0 ; j < sqrt ( n ) ; j ++ ) { trans [ i ] [ j ] = p [ j ] ; } p + = ( int ) sqrt ( n ) ; } for ( k = 0 ; k < sqrt ( n ) ; k ++ ) { for ( i = 0 ; i < sqrt ( n ) ; i ++ ) { for ( j = 0 ; j < sqrt ( n )

离散数学复习点统计

放肆的年华 提交于 2020-01-22 04:08:15
文章目录 第一章: 第二章: 第四章: 第五章: 第六章: 第七章: 第八章: 第九章: 第十一章: 第一章: 基础: 命题 命题的真值 真值的取值 真命题 假命题 简单命题(原子命题) 复合命题 5个联结词的定义 5个联结词的运算方向 5个联结词的优先级顺序 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rhvqc5c7-1579571843362)(C:\Users\Janus II\AppData\Roaming\Typora\typora-user-images\image-20200103105543232.png)] 基础: 命题常项 命题变项 合式公式 (命题公式, 公式) 赋值(解释) 成真赋值 成假赋值 真值表 公式的类型: 重言式(永真式) 矛盾式(永假式) 可满足式 等值演算: 等值与等值式 24个基本等值式 等值演算 置换规则 证明两个公式等值: 判断公式的类型: 复合联结词: n元真值函数 8个联结词的全功能集 范式: 对偶式 & 对偶原理 文字 简单析取式 简单合取式 析取范式 合取范式 范式 公式A的析取范式 & 公式A的合取范式 求析取范式 & 合取范式: 主要就是将其中的蕴含和等值全部化掉就好! 而后找到其中的析取范式 & 合取范式的组合! 极小项 & 极大项 主析取范式 主合取范式 以及这两个的求法: 先求析取范式

离散数学A

馋奶兔 提交于 2020-01-14 04:48:37
自反性:(都自指)所有的点自己指向自己【<a,a><b,b>】; 反自反性:(都不自指)所有的点都绝不自己指向自己; 对称性:但凡指,定互指【<a,b>,<b,a>】; 反对称性:但凡指,定单指; 传递性:间接指向,定直指【<a,b><b,c><a,c>】; 【平面图 】 *|欧拉公式: 1个联通分支: 顶点数 - 边数 + 面数 = 1 + 1 推广到n个联通分支: 顶点数 - 边数 + 面数 = 联通分支数 + 1 *|握手定理对偶 平面图所有面的次数和 = 2 x 边数 如果A,就B. 如果A,则B. <=> A仅当B.<=>A->B 】 只有A,才有B. 除非A,才有B.<=> B->A 】 除非A,否则B<=> (┒A)->B 】 A当且仅当B<=> A<=>B 树的度数之和 = 2 x 边数 例题: 若一棵树有两个2 度顶点,一个3度顶点,3个4 度顶点,其余都有是树叶,则该树共有 15 个顶点 假设有n个定点,边数为n-1;则 (4+3+12+n-6)= 2 x(n-1) 取模运算:a % p(或a mod p),表示a除以p的余数。 模p加法:(a + b) % p = (a % p + b % p) % p ,其结果是a+b算术和除以p的余数。 模p减法:(a - b) % p = (a % p - b % p) % p,其结果是a-b算术差除以p的余数。