离散数学基础版1.0
1.集合
1.1集合的定义:
集合的定义有三种:列举法,谓词法,韦恩图法.
“列举法"形如:A={0,1,2,3}
"谓词法"形如:A={ x
∈
\in
∈ N|x mod 2=1}
"韦恩图法"形如:
1.1.2集合的用途:
描述对象,每个对象对应的属性不一样,用不同的集合表示不同的对象,在机器学习中用来做标签。
答:(1).4个元素,分别是0,1,{0,1},{1,2},
(2).优点:一个集合可以储存不同类型的元素(单个字符,一个集合),可以表示一个多属性的对象。
(3).若在程序中使用元组,要增删改的消耗大,所以对于集合的元组元组无法进行写操作,因此不支持append、extend、insert等操作,集合中的每个元组可以读,元组的读取操作(与列表一致,使用索引)
2基数:
2.1基数的定义:
基数表示集合的大小,例如一个集合A的基数表示为|A|,读作cadinalty of A.
(1).0;空集里面没有元素。
(2).1;该集合有一个元素,该元素是一个空集。
3.笛卡尔积
3.1笛卡尔积的定义:
两个集合X和Y的笛卡尔积,表示为X × \times ×Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。
3.2笛卡尔积的表示:
3.3笛卡尔积的有序性,所以不支持结合律:
有些地方为了说明元素的有序性,笛卡尔积是有序性的,使用<x,y>而不是(x,y);对于表示向量时,表示向量是
∣
x
1
,
.
.
.
,
x
n
∣
\left |x_{1},...,x_{n} \right |
∣x1,...,xn∣,而不是
(
x
1
,
.
.
.
,
x
n
)
\left (x _{1},...,x_{n} \right )
(x1,...,xn)。
笛卡尔积不支持结合律,所以不一定满足(A x B) x C=A x (B x C)
若A = { a },B={b},C={c}:
(1).
A
×
B
=
{
(
a
,
b
)
}
A\times B=\left \{ \left ( a,b \right ) \right \}
A×B={(a,b)};
(2).
(
A
×
B
)
×
C
=
{
(
a
,
b
)
,
c
}
\left ( A\times B \right ) \times C=\left \{ \left ( a,b \right ) ,c \right \}
(A×B)×C={(a,b),c};
(3).
A
×
(
B
×
C
)
=
{
a
,
(
b
,
c
)
}
A\times \left ( B\times C \right ) =\left \{ a,\left ( b,c \right ) \right \}
A×(B×C)={a,(b,c)};
3.4笛卡尔积对并运算和交运算满足分配律。
4. 数据集
4.1什么是数据集:
若C是基数为3的集合,S为基数为4的集合,W为基数为5的集合,则则几个集合的笛卡尔积后的新集合R的基数为 3 × 4 × 5 = 60 3\times4\times 5=60 3×4×5=60(C,S,W的笛卡尔积元素个数为60),数据集是笛卡尔集中的任意个元素,其大小小于等于笛卡尔积元素个数。
4.2数据集的表示:
4.3列向量表示一个对象
在机器学习中,通常用一个列向量表示一个对象, 这种情况下, 矩阵表示法中应使用 D = { x 0 , x 1 . . . , x n } D=\left \{x_{0},x_{1}...,x_{n} \right \} D={x0,x1...,xn}即不用使用转置符号。
5.幂集
5.1幂集的概念:
若A为为任意集合,以A的子集为元素所组成的集合,称为A的幂集,例如A={1,2,3},则A的幂集,
6.二元关系
二元关系来描述两个值的关系,例如大小关系是一种二元关系,若第一个值设为X,另一个是Y,(1)当X=Y时,表示的就是二维直角坐标系的表示过45度这条直线,(2)当X<Y时,就是二维直角坐标系中表示过45度这条直线的左上,(3)X>Y时,就是二维直角坐标系中表示过45度这条直线的右下。
6.1关系的拓展:
三元关系,四元关系,…,n元关系,多少“元”表示的有多少个变量,描述的是,这些变量的关系。
例如:一个三元关系:
{
(
x
,
y
,
z
)
,
x
2
+
y
2
+
z
2
=
1
}
\left \{ \left ( x,y,z \right ) ,x^{2}+y^{2}+z^{2}=1\right \}
{(x,y,z),x2+y2+z2=1}
7.函数
函数是为了讨论输入到输出的映射,数学中我们接触到很多函数模型,这里不必多说。
算,学习器讨论的也是输入到输出的映射,我们通过输入数据,通过关系的映射求得输出数据。
8.元组
8.1元组=对象的类
元组的各个部分,即可以是一个集合,也可以是一个基本元素。
可以完整的表达,因为“元组=类”,在程序设计中,元组应封装成一个类,不仅能表示实例对象的数据,也能覆盖任何操作。
代码如下:
#include <iostream>
#include <vector>
#include <tuple>
using namespace std;
//描述一个人
void getDescription(string name,int age){
cout<<name<<"的年龄是:"<<age<<endl;
}
int main()
{
//一个元组表示一个人
tuple<string,int,void(*)(string,int)> person("Amy",10,getDescription);
//得到这个元组的数据,操作这个元组的方法
get<2>(person)(get<0>(person),get<1>(person));
return 0;
}
打印结果:
Definition 7:A binary tree is a tuple
T
b
=
(
V
,
r
,
c
)
T_{b}=(V,r,c)
Tb=(V,r,c),where
V
=
{
v
1
.
.
.
v
n
}
V=\left \{ v_{1}...v_{n} \right \}
V={v1...vn} is the value of the node,r is root,c:
V
∪
{
ϕ
}
×
∑
∗
⟶
V
∪
{
ϕ
}
V\cup \left \{\phi \right \} \times \sum {^{*}} \longrightarrow V\cup \left \{ \phi \right \}
V∪{ϕ}×∑∗⟶V∪{ϕ}satisfying.
Definition 8 :An undirected weighted graph is a tuple
G
w
=
(
V
,
w
)
G_{w}=(V,w)
Gw=(V,w),w :
V
×
V
−
>
R
+
∪
{
0
}
V \times V->\mathbb{R}^{+} \cup \left \{ 0\right \}
V×V−>R+∪{0} is the edge weight function,and
w
(
v
i
,
v
j
)
=
w
(
v
j
,
v
i
)
w(v_{i},v_{j})=w(v_{j},v_{i})
w(vi,vj)=w(vj,vi).
Definition 9:Let
∑
=
{
l
,
r
}
\sum=\left \{ {l,r} \right \}
∑={l,r} be the alphbet and
ϕ
\phi
ϕ be a null node. A binary tree is a triple T = ( V , r , c ) , where
V
=
{
v
1
.
.
.
v
n
}
V=\left \{ v_{1}...v_{n} \right \}
V={v1...vn} is the set of nodes,
r
∈
V
r {\in}V
r∈V is the root,and we say there is a relationship c,c:
V
∪
{
ϕ
}
×
∑
∗
⟶
V
∪
{
ϕ
}
V\cup \left \{\phi \right \} \times \sum {^{*}} \longrightarrow V\cup \left \{ \phi \right \}
V∪{ϕ}×∑∗⟶V∪{ϕ}satisfying.
(a).
∀
v
∈
V
,
∃
1
s
∈
∑
∗
s
t
.
c
(
r
,
s
)
=
v
\forall v\in V,\exists 1 s\in\sum {^{*}} st.c(r,s)=v
∀v∈V,∃1s∈∑∗st.c(r,s)=v
Definition 10:A deterministic finite state automata binary tree is a tuple
T
b
=
(
∑
,
V
,
q
0
,
T
,
f
)
T_{b}=(\sum,V,q_{0},T,f)
Tb=(∑,V,q0,T,f),where
∑
\sum
∑ is {l,r},
V
=
{
v
1
.
.
.
v
n
}
V=\left \{ v_{1}...v_{n} \right \}
V={v1...vn} ,
q
0
q_{0}
q0 is the root of binary tree,T is the end node meaning is null,f is the transition function,f:
V
∪
{
ϕ
}
×
∑
∗
⟶
V
∪
{
ϕ
}
V\cup \left \{\phi \right \} \times \sum {^{*}} \longrightarrow V\cup \left \{ \phi \right \}
V∪{ϕ}×∑∗⟶V∪{ϕ} satisfied .
(a).
∀
v
∈
V
,
∃
1
s
∈
∑
∗
s
t
.
f
(
r
,
s
)
=
v
\forall v\in V,\exists 1 s\in\sum {^{*}} st.f(r,s)=v
∀v∈V,∃1s∈∑∗st.f(r,s)=v
Definition 11:The tree is a This is an n-tree,a node of tree can have up to n children.A deterministic finite state automata tree is a tuple
T
=
(
∑
,
V
,
q
0
,
T
,
f
)
T=(\sum,V,q_{0},T,f)
T=(∑,V,q0,T,f),where
∑
\sum
∑ ={0,1,…,n-1},
V
=
{
v
1
.
.
.
v
n
}
V=\left \{ v_{1}...v_{n} \right \}
V={v1...vn} ,
q
0
q_{0}
q0 is the root of binary tree,T is the end node meaning is null,f is the transition function,f:
V
∪
{
ϕ
}
×
∑
∗
⟶
V
∪
{
ϕ
}
V\cup \left \{\phi \right \} \times \sum {^{*}} \longrightarrow V\cup \left \{ \phi \right \}
V∪{ϕ}×∑∗⟶V∪{ϕ} satisfied .
(a).
∀
v
∈
V
,
∃
1
s
∈
∑
∗
s
t
.
c
(
v
,
s
)
=
r
\forall v\in V,\exists 1 s\in\sum {^{*}} st.c(v,s)=r
∀v∈V,∃1s∈∑∗st.c(v,s)=r