拓扑学基础 Week 1

以下内容持续更新,预计于 2022 年 5 月 9 日前后完成全部更新。

参考教材:

  1. 《拓扑学》熊金城 等译;
  2. 《Topology》James R.munkres 著。

导引:群 Group

群是代数学中一种十分常见的数学结构。虽然群并不是拓扑学的主要研究对象,但是我们将以群为例,介绍本课程为数学结构下定义的方法。

群的定义

G G G 是一个集合, ⋅ \cdot G G G 上的二元代数运算,即 :

⋅   :   G × G → G ( g 1 , g 2 ) ↦ g 1 ⋅ g 2 \begin{aligned} \cdot\space:&\space G\times G\to G\\ &\left(g_1,g_2\right)\mapsto g_1\cdot g_2 \end{aligned}  : G×GG(g1,g2)g1g2

满足以下三个条件,则称 ( G , ⋅ ) (G,\cdot) (G,) 是一个群:

  1. 存在单位元: ∃ e ∈ G , ∀ g ∈ G , e ⋅ g = g = g ⋅ e \exist e\in G, \forall g\in G, e\cdot g=g=g\cdot e eG,gG,eg=g=ge
  2. 存在逆元: ∀ g ∈ G , ∃ h g ∈ G , h g ⋅ g = e = g ⋅ h g \forall g\in G, \exist h_g \in G, h_g\cdot g=e=g\cdot h_g gG,hgG,hgg=e=ghg
  3. 运算满足结合律: ∀ g 1 , g 2 , g 3 ∈ G , ( g 1 ⋅ g 2 ) ⋅ g 3 = g 1 ⋅ ( g 2 ⋅ g 3 ) \forall g_1,g_2,g_3\in G, (g_1\cdot g_2)\cdot g_3=g_1\cdot (g_2\cdot g_3) g1,g2,g3G,(g1g2)g3=g1(g2g3)

群的例子

( B i j ( X ) , ∘ ) (Bij(\mathbb{X}), \circ) (Bij(X),) 是群,其中 B i j ( X ) Bij(\mathbb{X}) Bij(X) 指集合 X \mathbb{X} X 上的所有双射函数, ∘ \circ 指函数复合运算;

( Z , + ) (\mathbb Z, +) (Z,+) 是群,即整数加法群。

若要判断一个二元组是不是群,只需要验证上述的三个条件以及运算 ⋅ \cdot 的定义即可。

拓扑空间 Topology Space

不另加说明的条件下,下文中使用 { U α } \{U_\alpha\} {Uα} 表示一个任意的集合, { U n } \{U_n\} {Un} 表示一个任意的含有 n n n 个元素的有限集合。

拓扑空间的定义、开集的定义

X \mathbb X X 是一个集合, T \mathscr T T X \mathbb X X 的子集构成的集合族,即 T ⊆ 2 X \mathscr T\subseteq 2^\mathbb X T2X

注:“ T \mathscr T T” 是手写体的字母 “ T T T”,本文中用手写体字母表示集合族,即 “以集合为元素的集合”。

若满足以下三个条件,则称 T \mathscr T T 是集合 X \mathbb X X 上的拓扑,称 ( X , T ) (\mathbb X, \mathscr T) (X,T) 为拓扑空间:

  1. 包含空集和全集: ∅ , X ∈ T \mathbb \empty, \mathbb X\in \mathscr T ,XT
  2. T \mathscr T T 中元素的 “任意并” 仍在 T \mathscr T T 中: ∀ { U α } ⊆ T , ( ⋃ U ∈ { U α } U ) ∈ T \forall \{U_\alpha\} \subseteq\mathscr T, \left(\bigcup_{U\in \{U_\alpha\}} U\right)\in \mathscr T {Uα}T,(U{Uα}U)T
  3. T \mathscr T T 中元素的 “有限交” 仍在 T \mathscr T T 中: ∀ { U n } ⊆ T , ( ⋂ i = 1 n U i ) ∈ T \forall \{U_n\} \subseteq\mathscr T, \left(\bigcap_{i=1}^n U_i\right)\in \mathscr T {Un}T,(i=1nUi)T

在拓扑空间 ( X , T ) (\mathbb X, \mathscr T) (X,T) 给定时, T \mathscr T T 中元素称为 X \mathbb X X 中的开集(open set)。

拓扑的例子

二元集合 X = { a , b } \mathbb X=\{a, b\} X={a,b} 上有且仅有 4 4 4 个拓扑:

T 1 = { ∅ , X } T 2 = { ∅ , X , { a } } T 3 = { ∅ , X , { b } } T 4 = { ∅ , X , { a } , { b } } \begin{aligned} \mathscr T_1 &=\{\mathbb \empty, \mathbb X\}\\ \mathscr T_2 &=\{\mathbb \empty, \mathbb X, \{a\}\}\\ \mathscr T_3 &=\{\mathbb \empty, \mathbb X, \{b\}\}\\ \mathscr T_4 &=\{\mathbb \empty, \mathbb X, \{a\}, \{b\}\} \end{aligned} T1T2T3T4={,X}={,X,{a}}={,X,{b}}={,X,{a},{b}}

其中 T 2 \mathscr T_2 T2 T 3 \mathscr T_3 T3 有一些结构上的相似性,后文中会介绍拓扑同胚的概念。

基 Basis

由于 “拓扑” 的结构相对而言比较复杂,难以直接手工构造,因此我们使用 “基” 这一数学结构生成一个 “拓扑”。

基的定义

X \mathbb X X 是一个集合, B ⊆ 2 X \mathscr B\subseteq2^\mathbb X B2X X \mathbb X X 子集构成的族。

注:“ B \mathscr B B” 是手写体的字母 “ B B B”。

如果以下两个条件成立,那么我们称 B \mathscr B B X \mathbb X X 上的基:

  1. 能够 “覆盖” 全集: ∀ x ∈ X , ∃ B ∈ B , x ∈ B \forall x\in \mathbb X,\exist B\in \mathscr B, x\in B xX,BB,xB
  2. 能够 “覆盖” 交集: ∀ B 1 , B 2 ∈ B , ∀ x ∈ B 1 ∩ B 2 , ∃ B 3 ∈ B , x ∈ B 3 ⊆ B 1 ∩ B 2 \forall B_1, B_2\in \mathscr B, \forall x \in B_1\cap B_2, \exist B_3\in \mathscr B, x\in B_3\subseteq B_1\cap B_2 B1,B2B,xB1B2,B3B,xB3B1B2

上述的第二点可以用一种更为形象的方法表达,即 B \mathscr B B 中任意两个元素的交集,一定可以被 B \mathscr B B 中元素 “恰好覆盖”。即:

∀ B 1 , B 2 ∈ B , ∃ { B α } ⊆ B , ⋃ B ∈ { B α } B = B 1 ∩ B 2 \forall B_1,B_2 \in \mathscr B,\exist \{B_\alpha\}\subseteq\mathscr B,\bigcup_{B\in\{B_\alpha\}}B=B_1\cap B_2 B1,B2B,{Bα}B,B{Bα}B=B1B2

不难证明这两种说法是等价的,定义中采用的说法更利于证明,而第二种说法更利于理解。

用基生成一个拓扑

已知 B \mathscr B B X \mathbb X X 上的基,定义:

T B = { U ⊆ X ∣ ∀ x ∈ U , ∃ B ∈ B , x ∈ B ⊆ U } T_{\mathscr B}=\{U\subseteq\mathbb X|\forall x \in U,\exist B\in \mathscr B, x\in B\subseteq U\} TB={UXxU,BB,xBU}

简而言之, U U U 可以被 B \mathscr B B 中的若干元素的并 “恰好覆盖” 是 U ∈ T B U\in \mathscr T_\mathscr B UTB 的充要条件。

此处需要证明 T B \mathscr T_\mathscr B TB 是一个拓扑

引理:基元素的任意并可以生成一个拓扑

不难说明,这和上面的 T B \mathscr T_\mathscr B TB 的定义是等价的。

基的例子

在实数集合 R \mathbb R R 上,如果 B \mathscr B B 是所有 “开区间(含无穷区间)” 构成的集合,由此生成的拓扑成为 R \mathbb R R 上的标准拓扑。

子基 Subbasis

由于基的结构仍然有些复杂,在研究具体问题时,有时我们需要指出哪些集合我 “钦定” 它为开集,然后再生成一个拓扑。这种语境下,就需要使用到子基的概念。

子基的定义

X \mathbb X X 是一个集合, S ⊆ 2 X \mathscr S \subseteq 2^\mathbb X S2X X \mathbb X X 子集构成的族。

注:“ S \mathscr S S” 是手写体的字母 “ S S S”。

如果下述条件成立,则称 S \mathscr S S X \mathbb X X 上的子基:

  1. 覆盖全集: ∀ x ∈ X , ∃ S ∈ S , x ∈ S \forall x \in \mathbb X, \exist S\in \mathscr S, x\in S xX,SS,xS

换言之,只要 S \mathscr S S 所有元素的并集恰好得到了全集 X \mathbb X X,那么就称 S \mathscr S S X \mathbb X X 上的子基。这个条件看起来就很容易满足了。

用子基生成一个基

已知 S \mathscr S S X \mathbb X X 上的一个子基,定义 B S \mathscr B_\mathscr S BS 如下:

B S = { ⋂ i = 1 n U i ∣ { U n } ⊆ S } \mathscr B_\mathscr S=\{\bigcap_{i=1}^nU_i|\{U_n\}\subseteq\mathscr S\} BS={i=1nUi{Un}S}

用语言描述来讲,就是从 S \mathscr S S 中任取有限个元素,然后把这些元素的交集放到一个集合中,最后得到的集合就是 B S \mathscr B_\mathscr S BS

此处需要验证 B S \mathscr B_\mathscr S BS X \mathbb X X 上的一个基。

用子基生成一个拓扑

简而言之,先用子基 S \mathscr S S 生成一个基 B S \mathscr B_\mathscr S BS ,再用这个基生成一个拓扑 T B S \mathscr T_{\mathscr B_\mathscr S} TBS 即可。而用基生成拓扑的方法已经在前文中介绍过了。

子基的例子

在实数集 R \R R 上,定义:

S = { ( − ∞ , b ) ∣ b ∈ R } ∪ { ( a , + ∞ ) ∣ a ∈ R } ∪ { ( − ∞ , + ∞ ) } \mathscr S=\{(-\infty, b)|b\in \R\}\cup\{(a,+\infty)|a\in \R\}\cup\{(-\infty, +\infty)\} S={(,b)bR}{(a,+)aR}{(,+)}

不难证明由它生成的 B S \mathscr B_\mathscr S BS 就是 R \R R 上所有的开区间。

乘积拓扑 Product Topology

乘积拓扑是一种生成拓扑的方法,让我们更好的利用已有的拓扑空间去构造新的拓扑空间。例如,我们可以使用 R \R R 上的标准拓扑生成 R 2 \R^2 R2 上的标准拓扑。

用基定义 X × Y \mathbb X\times \mathbb Y X×Y 上的乘积拓扑

( X , T X ) (\mathbb X,\mathscr T_\mathbb X) (X,TX) ( T , T Y ) (\mathbb T, \mathscr T_\mathbb Y) (T,TY) 是两个拓扑空间,构造:

B = { U × V ∣ U ∈ T X , V ∈ T Y } \mathscr B=\{U\times V|U\in \mathscr T_\mathbb X,V\in \mathscr T_\mathbb Y\} B={U×VUTX,VTY}

不难证明 B \mathscr B B 是集合 X × Y \mathbb X\times \mathbb Y X×Y 的基,由 B \mathscr B B 生成的拓扑 T B \mathscr T_\mathscr B TB 称为集合 X × Y \mathbb X\times \mathbb Y X×Y 上的乘积拓扑。

此处需要验证 B \mathscr B B X × Y \mathbb X\times \mathbb Y X×Y 上的一个基。

p.s. 投影函数 π i \pi_i πi 与其反函数 π i − 1 \pi_i^{-1} πi1

为了数学上表述起来更方便,我们定义了这样的一类函数 π i \pi_i πi,我们称其为 ”投影函数“。

以二元投影函数 π 1 \pi_1 π1 为例( π 2 \pi_2 π2 同理):

π 1 : X × Y → X ( x , y ) ↦ x \begin{aligned} \pi_1:&\mathbb X\times \mathbb Y\to \mathbb X\\ &(x,y)\mapsto x \end{aligned} π1:X×YX(x,y)x

同理,多元投影函数 π i \pi_i πi 表达的就是将一个 n n n 元组,到它的第 i i i 个维度上的值:

π i : X 1 × X 2 × ⋯ × X n → X i ( x 1 , x 2 , ⋯   , x n ) ↦ x i \begin{aligned} \pi_i: &\mathbb X_1\times \mathbb X_2\times \cdots\times \mathbb X_n\to \mathbb X_i\\ &(x_1,x_2, \cdots, x_n)\mapsto x_i \end{aligned} πi:X1×X2××XnXi(x1,x2,,xn)xi

n = ∞ n=\infty n= 时,会出现争议。我们是否能够取无穷个集合的笛卡尔积 X 1 × X 2 × ⋯ \mathbb X_1\times \mathbb X_2\times \cdots X1×X2× 中的元素在数学上仍有分歧。但是本文中,我们统一地认为,这件事是能做到的,即 投影函数 π i \pi_i πi 可以定义在 X ∞ \mathbb X^\infty X 上,此时 i i i 可以取任意正整数。

而比 π i \pi_i πi 用的更多的是其反函数 π i − 1 \pi_i^{-1} πi1 ,但是 π i − 1 \pi_i^{-1} πi1 往往不是函数,因为 π i \pi_i πi 往往不是一个双射。事实上,在本文研究的领域内,可以自信地把 “往往” 去掉,因为我们所研究的 X i \mathbb X_i Xi 一定不会是单点集合。

以有序二元对上的 π 1 − 1 \pi_1^{-1} π11 为例:

π 1 − 1 ( x ) = { x } × Y \pi_1^{-1}(x)=\{x\}\times\mathbb Y π11(x)={x}×Y

即第一维坐标为 x x x 的所有点。我们进而定义了如下的运算规则:

U ⊆ X U\subseteq \mathbb X UX 是一个集合,则有:

π 1 − 1 ( U ) = U × Y = ⋃ x ∈ U π 1 − 1 ( x ) \pi_1^{-1}(U)=U\times\mathbb Y=\bigcup_{x\in U}\pi_1^{-1}(x) π11(U)=U×Y=xUπ11(x)

即第一维坐标在集合 U U U 之中的所有点。

用子基定义 X × Y \mathbb X\times \mathbb Y X×Y 上的乘积拓扑

( X , T X ) (\mathbb X,\mathscr T_\mathbb X) (X,TX) ( T , T Y ) (\mathbb T, \mathscr T_\mathbb Y) (T,TY) 是两个拓扑空间,构造:

S = { π 1 − 1 ( U ) ∣ U ∈ T X } ∪ { π 2 − 1 ( V ) ∣ V ∈ T Y } \mathscr S=\{\pi_1^{-1}(U)|U\in \mathscr T_\mathbb X\}\cup\{\pi_2^{-1}(V)|V\in\mathscr T_\mathbb Y\} S={π11(U)UTX}{π21(V)VTY}

由子基 S \mathscr S S 生成的拓扑 T B S \mathscr T_{\mathscr B_\mathscr S} TBS 称为 集合 X × Y \mathbb X\times \mathbb Y X×Y 上的乘积拓扑。

此处需要验证 S \mathscr S S X × Y \mathbb X\times \mathbb Y X×Y 上的一个子基。

( U 1 × V 1 ) ∩ ( U 1 × V 2 ) = ( U 1 ∩ U 2 ) × ( V 1 ∩ V 2 ) (U_1\times V_1) \cap (U_1\times V_2)=(U_1\cap U_2)\times(V_1\cap V_2) (U1×V1)(U1×V2)=(U1U2)×(V1V2) 即可证明。

不难说明,用子基定义的乘积拓扑与用基定义的乘积拓扑实质是同一个拓扑,因为这里的 S \mathscr S S 生成子基 B S \mathscr B_\mathscr S BS 就是 “用基定义 X × Y \mathbb X\times \mathbb Y X×Y 上的乘积拓扑” 一节中的 B \mathscr B B

笔记的作者自认为这里有一个“异曲同工之妙”:上文中 ”基的例子“ 与 ”子基的例子“ 两个例子的内在联系,已经揭示了为什么用子基定义的乘积拓扑与用基定义的乘积拓扑实质是同一个拓扑。

但是,这只是两个拓扑空间相乘的情况,在有限个拓扑空间相乘时,“用基生成的乘积拓扑” 与 “用子基生成的乘积拓扑” 等价。但当维数达到无穷时,这两种生成乘积拓扑的方式就不再等价了。前者生成的拓扑称为 “箱拓扑(Box Topology)”,后者称为的拓扑称为 “乘积拓扑(Product Topology)”。

子空间拓扑 Subspace Topology

如果说乘积空间是向高纬度去构造拓扑空间,那么子空间就可以说成 “在已有的拓扑空间中找到一个子集上的子空间”。

子空间拓扑的定义

( X , T ) (\mathbb X, \mathscr T) (X,T) 是一个拓扑空间, A ⊆ X A\subseteq \mathbb X AX X \mathbb X X 的一个子集,那么我们称:

T A : = { U ∩ A ∣ U ∈ T } \mathscr T_A:=\{U\cap A|U\in \mathscr T\} TA:={UAUT}

简而言之,将 大空间 X \mathbb X X 的所有开集 U U U 与集合 A A A 作交集,我们把得到的这些集合去定义为 A A A 上的所有开集——这样就得到了子空间拓扑。

此处需要检验 T A \mathscr T_A TA 符合拓扑的定义。

子空间的基

如果我们现在已知了大空间 X \mathbb X X 上的一个拓扑 T \mathscr T T 可以由大空间上的基 B \mathscr B B 生成,而且 A ⊆ X A\subseteq\mathbb X AX。那么,我们可以定义:

B A : = { B ∩ A ∣ B ∈ B } \mathscr B_A:=\{B\cap A|B\in \mathscr B\} BA:={BABB}

此处需要检验 B A \mathscr B_A BA 符合基的定义。

不难说明, B A \mathscr B_A BA 是集合 A A A 上的基,且由这个基生成拓扑 T B A \mathscr T_{\mathscr B_A} TBA 就是上文中提到的子空间拓扑。

子空间的乘积空间与乘积空间的子空间

考虑有两个拓扑空间 ( X , T X ) (\mathbb X, \mathscr T_\mathbb X) (X,TX) ( Y , T Y ) (\mathbb Y, \mathscr T_\mathbb Y) (Y,TY) A ⊆ X , B ⊆ Y A\subseteq \mathbb X, B\subseteq\mathbb Y AX,BY 是两个集合各自的子集。倘若我们要生成一 A × B A\times B A×B 这个集合上的一个拓扑,现在有两种途径:

  1. 途径一:先得到大空间的乘积拓扑 ( X × Y , T X × Y ) (\mathbb X\times\mathbb Y, \mathscr T_{\mathbb X\times\mathbb Y}) (X×Y,TX×Y),再使用子空间拓扑得到 ( A × B , T A × B ) (A\times B, \mathscr T_{A\times B}) (A×B,TA×B)
  2. 途径二:先通过两次使用子空间拓扑分别得到拓扑空间 ( A , T A ) (A,\mathscr T_A) (A,TA) ( B , T B ) (B, \mathscr T_B) (B,TB),再计算二者的乘积拓扑得到 ( A × B , T A × B ) (A\times B, \mathscr T_{A\times B}) (A×B,TA×B)

幸运的是,我们能够证明,通过这两种途径得到的两个拓扑无论在什么情况下都是同一个拓扑。

闭集与聚点 Close Set and Limit Point

在微积分中,已知 A ⊆ R n A\subseteq \R^n ARn R n \R^n Rn 的一个子集,我们经常会这样定义:

若点 x ∈ R n x\in \R^n xRn 满足任意包含 x x x 的开邻域 U U U,都有 U ∩ A ≠ ∅ U\cap A\neq \mathbb \empty UA= U ∩ A U\cap A UA 中不止有 x x x 一个点,则称 x x x A A A 的聚点。而闭集就是指那些包含了所有自身的聚点的集合。

微积分中一半研究的是 R n \R^n Rn 欧氏空间中的问题,我们能够说明它所隐含采用拓扑是拓扑学中定义的标准拓扑。

闭集的定义

A ⊆ X A\subseteq \mathbb X AX X \mathbb X X 的一个子集, A A A 在拓扑空间 ( X , T ) (\mathbb X, \mathscr T) (X,T) 中被称为 “闭集” 当且仅当 X − A ∈ T \mathbb X-A\in \mathscr T XAT,即它的补集是一个 “开集”。

这种定义也就意味着我们同样也可以从闭集的角度来定义拓扑。先前我们称,拓扑是 X \mathbb X X 中所有开集构成的集合,假设我们令拓扑是所有闭集构成的集合,同样也可以建立这套拓扑学的理论体系,定义如下:

X \mathbb X X 是一个集合, T ⊆ 2 X \mathscr T\subseteq 2^\mathbb X T2X X \mathbb X X 子集构成的族,若满足以下三个条件,则称 T \mathscr T T X \mathbb X X 上的拓扑:

  1. 空集和全集是闭集: ∅ , X ∈ T \mathbb \empty,\mathbb X\in \mathscr T ,XT
  2. 闭集的 “任意交” 仍是闭集: ∀ { U α } ⊆ T , ( ⋂ U ∈ { U α } U ) ∈ T \forall \{U_\alpha\} \subseteq\mathscr T, \left(\bigcap_{U\in \{U_\alpha\}} U\right)\in \mathscr T {Uα}T,(U{Uα}U)T
  3. 闭集的 “有限并” 仍是闭集: ∀ { U n } ⊆ T , ( ⋃ i = 1 n U i ) ∈ T \forall \{U_n\} \subseteq\mathscr T, \left(\bigcup_{i=1}^n U_i\right)\in \mathscr T {Un}T,(i=1nUi)T

但是我们并没有采用这种定义拓扑的方式,因为如果采用了这种方式的话,很多现有概念的定义都需要进行调整。

定理:子空间闭集等价于大空间闭集与子空间的交

这里用子空间开集的定义证明即可:子空间开集等价于大空间开集与子空间的交。

闭包与内点集 Closure and Limit Point

闭包定定义

( X , T ) (\mathbb X, \mathscr T) (X,T) 是一个拓扑空间, A ⊆ X A\subseteq \mathbb X AX 是一个子集,我们称 A A A 在该拓扑空间中的闭包为所有包含 A A A 的闭集的交,记为 A ˉ \bar A Aˉ。数学语言表述为:

A ˉ : = ⋂ A ⊆ U , X − U ∈ T U \bar A:=\bigcap_{ A\subseteq U,\mathbb X-U\in \mathscr T }U Aˉ:=AU,XUTU

因为闭集的任意交都是闭的,所以闭包是闭的,且包含了 A A A 中所有元素。而闭包的含义,简而言之,就是包含 A A A 的所有闭集中最小的一个。

内点集的定义

( X , T ) (\mathbb X, \mathscr T) (X,T) 是一个拓扑空间, A ⊆ X A\subseteq \mathbb X AX 是一个子集,我们称 A A A 在该拓扑空间中的内点集为所有被 A A A 包含的开集的并,记为 A ˚ \mathring A A˚。数学语言表述为:

A ˚ : = ⋃ U ⊆ A , U ∈ T U \mathring A:=\bigcup_{ U\subseteq A, U\in \mathscr T }U A˚:=UA,UTU

因为开集的任意并都是开的,所以内点集是开的,而且被 A A A 包含。类比闭包的含义,我们可以知道, A A A 的内点集是 A A A 包含的所有开集中最大的一个。

三者的包含性质

根据上文,不难发现有 A ˚ ⊆ A ⊆ A ˉ \mathring A\subseteq A\subseteq \bar A A˚AAˉ 始终成立。而当 A A A 为开集时 A ˚ = A \mathring A=A A˚=A;当 A A A 为闭集时, A = A ˉ A=\bar A A=Aˉ

性质:子空间中的闭包

( X , T ) (\mathbb X, \mathscr T) (X,T) 是一个拓扑空间, Y ⊆ X Y\subseteq\mathbb X YX X \mathbb X X 的子空间。 A ⊆ Y A\subseteq Y AY Y Y Y 的一个子集。能够证明: A A A Y Y Y 中闭包 A ˉ Y \bar A_Y AˉY A A A X \mathbb X X 中的闭包 A ˉ \bar A Aˉ 之间的关系为: A ˉ Y = A ˉ ∩ Y \bar A_Y=\bar A\cap Y AˉY=AˉY

注:证明两个集合相等的常用方法为证明 A ⊆ B A\subseteq B AB B ⊆ A B\subseteq A BA

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值