数学表达式day4

图与网络

写出该无向图的邻接矩阵.
在这里插入图片描述

该无向图的邻接矩阵表示为:
E = [ 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 ] \mathbf{E} = \begin{bmatrix} 0 & 1 & 1 & 1\\ 1 & 0 & 1 & 0\\ 1 & 1 & 0 & 1\\ 1 & 0 & 1 & 0 \end{bmatrix}\quad E=0111101011011010

定义无向网络.

参考了一下之前学习的内容,应该是这样的。网络就是有权图,而无向网络其实就是有权无向图,那么参考有向网络定义的话,只需要使得每个节点之间的权值相同达到对称,并且可以双向奔赴就好啦~
An directed net is a tuple G = ( V , w ) G = (\mathbf{V}, w) G=(V,w), where V \mathbf{V} V is the set of nodes, w : V × V → R w : \mathbf{V} \times \mathbf{V} \to \mathbb{R} w:V×VR is the weight function where w ( v i , v j ) w(v_i, v_j) w(vi,vj) is the weight of the edge ( v i , v j ) (v_i, v_j) (vi,vj) and ∀ ⟨ v i , v j ⟩ ⊆ V × V , w ( v i , v j ) = w ( v j , v i ) \forall \langle v_i,v_j \rangle \subseteq \mathbf{V} \times \mathbf{V}, w(v_i,v_j) = w(v_j,v_i) vi,vjV×V,w(vi,vj)=w(vj,vi).

12.4 作业

  1. 自己画一棵树, 将其元组各部分写出来 (特别是函数 p ).
  2. 针对该树, 将代码中的变量值写出来 (特别是 parent 数组).
  1. 网上随便找了一棵树来写写看。因为数的名称不重要,重要的是节点的顺序,所以我暂时把每个节点按对应英文字母顺序看待了。
    网上找了一个树写写看
    那么一个棵树的元组包括以下三部分:
    所有节点的集合: V = { A , B , C , D , E , F , G , H , I , J } \mathbf{V} = \{ \mathrm{A, B, C, D, E, F, G, H, I, J} \} V={A,B,C,D,E,F,G,H,I,J}
    唯一的根结点: r = A ∈ V r = \mathrm{A} \in \mathbf{V} r=AV
    节点之间的 parent 函数关系:
    p 0 ( G ) = G , p 1 ( G ) = D , p 2 ( G ) = B , p 3 ( G ) = A = r p^{0}(\mathrm{G}) = \mathrm{G}, p^{1}(\mathrm{G}) = \mathrm{D}, p^{2}(G) = \mathrm{B}, p^{3}(G) = \mathrm{A} = r p0(G)=G,p1(G)=D,p2(G)=B,p3(G)=A=r
    p 0 ( H ) = H , p 1 ( H ) = D , p 2 ( H ) = B , p 3 ( H ) = A = r p^{0}(\mathrm{H}) = \mathrm{H}, p^{1}(\mathrm{H}) = \mathrm{D}, p^{2}(\mathrm{H}) = \mathrm{B}, p^{3}(\mathrm{H}) = \mathrm{A} = r p0(H)=H,p1(H)=D,p2(H)=B,p3(H)=A=r
    p 0 ( I ) = H , p 1 ( I ) = D , p 2 ( I ) = B , p 3 ( I ) = A = r p^{0}(\mathrm{I}) = \mathrm{H}, p^{1}(\mathrm{I}) = \mathrm{D}, p^{2}(\mathrm{I}) = \mathrm{B}, p^{3}(\mathrm{I}) = \mathrm{A} = r p0(I)=H,p1(I)=D,p2(I)=B,p3(I)=A=r
    p 0 ( J ) = J , p 1 ( J ) = E , p 2 ( H ) = C , p 3 ( H ) = A = r p^{0}(\mathrm{J}) = \mathrm{J}, p^{1}(\mathrm{J}) = \mathrm{E}, p^{2}(\mathrm{H}) = \mathrm{C}, p^{3}(\mathrm{H}) = \mathrm{A} = r p0(J)=J,p1(J)=E,p2(H)=C,p3(H)=A=r
    p 0 ( F ) = F , p 1 ( F ) = C , p 2 ( F ) = A = r p^{0}(\mathrm{F}) = \mathrm{F}, p^{1}(\mathrm{F}) = C, p^{2}(\mathrm{F}) = \mathrm{A} = r p0(F)=F,p1(F)=C,p2(F)=A=r
    由于这个 p p p 关系我不知道怎么表达好,所以只能暂时肤浅地写成这样,是我能写出来尽可能可以表达树的节点的关系的函数形式了。

public class Tree {
	/**
	 * 节点数. 表示节点 v_0 至 v_{n-1}.
	 */
	int n;
	
	/**
	 * 根节点. 0 至 n-1.
	 */
	int root;
	
	/**
	 * 父节点.
	 */
	int[] parent;

	/**
	 * 构造一棵树, 第一个节点为根节点, 其余节点均为其直接子节点, 也均为叶节点.
	 */
	public Tree(int paraN) {
		n = paraN;
		parent = new int[n];
		parent[0] = -1; // -1 即 \phi
	}// Of the constructor
}//Of class Tree

Java小白简单理解一下代码中三个变量:
节点数 n: 按照我自己给的树,n 应从 0 一直变化到 9,一共10个节点。 即 V = { A , B , C , D , E , F , G , H , I , J } = { v 0 , v 1 , … , v 9 } \mathbf{V} = \{ \mathrm{A, B, C, D, E, F, G, H, I, J} \} = \{ v_0, v_1, \dots, v_9 \} V={A,B,C,D,E,F,G,H,I,J}={v0,v1,,v9}
根结点 root:根结点有且仅有一个, 我们定义为 r = 0 r = 0 r=0 ,也就是从 A A A 开始.
parent函数: 简单写成 p = [ − 1 , 0 , 0 , 0 , 1 , 2 , 2 , 3 , 3 , 3 , 4 ] p = [-1, 0, 0, 0, 1, 2, 2, 3, 3, 3, 4] p=[1,0,0,0,1,2,2,3,3,3,4].

m叉树

13.4 作业

  1. 画一棵三叉树, 并写出它的 child 数组.
  2. 按照本贴风格, 重新定义树. 提示: 还是应该定义 parent 函数, 字母表里面只有一个元素.
  3. 根据图、树、 m m m-叉树的学习, 谈谈你对元组的理解.
  1. 我自己随便画了一个三叉树,凑合看。
    请添加图片描述
    由于矩阵一共有 10 个节点,且是三叉树,这个矩阵的 child 矩阵应该为一个 10 × 3 10 \times 3 10×3 的矩阵,根据树的形状以及节点位置,这棵三叉树的child矩阵应该写成:
    [ 1 2 3 4 − 1 − 1 5 − 1 − 1 6 − 1 − 1 − 1 − 1 − 1 7 8 9 − 1 − 1 − 1 − 1 − 1 − 1 − 1 − 1 − 1 − 1 − 1 − 1 ] \begin{bmatrix} 1 & 2 & 3 \\ 4 & -1 & -1 \\ 5 & -1 & -1 \\ 6 & -1 & -1 \\ -1 & -1 & -1 \\ 7 & 8 & 9 \\ -1 & -1 & -1 \\ -1 & -1 & -1 \\ -1 & -1 & -1 \\ -1 & -1 & -1 \\ \end{bmatrix} 145617111121111811113111191111

  2. 已经尽力在整个新鲜定义出来了:

  • Let ϕ \phi ϕ be the empty node, a tree is a quadruple T = ( V , r , Σ , p ) \mathbf{T} = (\mathbf{V}, r, \Sigma, p) T=(V,r,Σ,p) where

  • V ≠ ∅ \mathbf{V} \ne \emptyset V= is the set of nodes;

  • r ∈ V r \in \mathbf{V} rV is the root node;

  • Σ = { 0 } \Sigma = \{ 0 \} Σ={0} is the alphabet;

  • p : V → V ∪ { ϕ } p : \mathbf{V} \to \mathbf{V} \cup \{ \phi \} p:VV{ϕ} is the parent mapping satisfying

    • p ( r ) = ϕ p(r) = \phi p(r)=ϕ;
    • ∀ v ∈ V , ∃ 1 s ∈ Σ ∗ s t . p ( v , s ) = r \forall v \in \mathbf{V}, \exists 1 s \in \Sigma^* st. p ( v , s ) = r vV,1sΣst.p(v,s)=r.

其实这里不确定字母表里的唯一一个元素到底是啥,不过不管是什么,只有一个元素的话,都只能从某个节点开始找唯一一个方向的 parent 节点,应该是这样的,感觉好菜啊┭┮﹏┭┮

  1. 在以往的理解中,元组其实就是对一个待描述的事物建模,将待描述的事物的各个部分,也就是属性包括在一个元组中,就可以将某个抽象的事物描述清楚。其中的每个属性既可以是一个集合, 也可以是一个基本元素。
    以“图”为例,我们说这个图是一个二元组,其实是在说一个图由两个因素——节点还有方向确定。
    那么对于“树”来说,这个元组中包含有节点的集合,根结点,以及parent函数关系。
    m m m-叉树”与“树”类似,它的元组中包含有节点的集合,根结点,字母表以及child函数关系。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值