最近,研究了两天的Burnside引理和Polya定理之间的联系,百思不得其解,然后直到遇到下面的问题:

对颜色限制的染色

例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着色?

其中置换的方法有旋转 \(0^{\circ}, 72^{\circ}, 144^{\circ}, 216^{\circ}, 288^{\circ}\), 穿过一个点做对称轴进行翻转。

Burnside引理的证明

那么,在解决这个问题之间,我们首先要定义和证明一些东西:

在集合\(X\)的置换群的作用下,设\(G\)是\(X\)的置换群,\(C\)是\(X\)的着色集,且\(G\)作用在\(C\)下。

定义\(c\)(小写)保持不变的\(G\)中所有的置换的集合:
\[
G(c) = \{f: f\in G, f*c=c\}
\]
上面的公式含义就是:对于每一个确认的着色方案,我们都能确定一个置换的集合,使得集合内任意元素和\(c\)运算后的结果保持不变(感觉可以看成一个等价类)。

使着色\(c\)保持不变的所有的置换群的集合\(G(c)\)称为\(c\)的稳定核。

在\(f\)的作用下使着色\(c\)保持不变的\(C\)中的所有的着色集,(确定一个\(f\),就能得到一个\(c\)的集合)

\[
C(f) = \{c: c\in C, f*c=c\}
\]
这个就是后面的求解过程中,对于每一种置换,统计不动点的方式。

推论1:设\(c\)为\(C\)中的一种着色,那么与\(c\)等价的着色数

\[
\left | \{ f*c:f \in G\}\right |
\]
等于\(G\)中的置换数除以\(c\)的稳定核中的置换数的个数:

\[
\frac{|G|}{|G(c)|}
\]
证明:

对于每一个置换\(f\),恰好存在\(|G(c)|\)个置换,这些置换作用在\(c\)上与\(f\)有相同的效果。因为总共有\(|G|\)个置换,所以与\(c\)等价的着色数为

\[
\frac{|G|}{|G(c)|}
\]
是不是感觉一头雾水。。。没关系,我们通过一个典型的例子来进一步的解读:

例:对正方形的4个小格用两种颜色着色,可得多少种不同的图像?置换的方式有旋转0°,90°,180°,270°。

先画出所有的涂色方案:

假设我们选择涂色方案\(f_1\),在16中涂色的方案中,有多少的涂色方案预期等价呢?

\[
G(f_1) = \{旋转0°, 旋转90°,旋转180°,旋转270°\}\\
|G(f_1)| = 4 \\
\therefore 16中涂色方案中,有\frac{|G|}{|G(f_1)|} = 1种方案与其等价\\
同理:G(f_3) = {旋转0°}\\
|G(f_3)| = 1\\
\therefore 16中涂色方案中,有\frac{|G|}{|G(f_3)|} = 4种方案与其等价, 它们分别是f_3, f_4, f_5, f_6\\
\]
下面就是关键了!!

Burnside定理:设\(G\)是\(X\)的置换群,而\(C\)是\(X\)中一个满足下面条件的着色集合:对于\(G\)中所有的\(f\)和\(C\)中的所有的\(c\)都有\(f*c\)仍在C中,则\(C\)中非等价的着色数\(N(G, C)\):

\[
N(G, C) = \frac{1}{|G|}\sum_{f\in G}|C(f)|
\]

证明:

采用两种不同的计数的方法,然后使计数相等,最后化简求解。

一种方式是考察\(G\)中的每一个\(f\),并计算\(f\)保持着色不变的着色数然后求和。

\[
\sum_{f \in G}|C(f)|
\]
另外一种方式就是考察\(C\)中的每一个\(c\),对保持不变的着色方案数求和:

\[
\sum_{c \in C}|G(c)|
\]
两种计数方式的总和相等:

\[
\sum_{f \in G}|C(f)| = \sum_{c \in C}|G(c)|
\]
由推论1:

\[
|G(c)| = \frac{|G|}{与c等价的着色数}
\]
因此:

\[
\sum_{c \in C}|G(c)| = |G|\sum_{c \in C}\frac{1}{与c等价的着色数}
\]
又在一个等价类里面,每一个元素的贡献都是:

\[
\frac{1}{与c等价的着色数}
\]
一个等价类的和就是1。

所以:
\[
\sum_{c \in C}|G(c)| = |G|*N(G,C)\\
\therefore \sum_{f \in G}|C(f)| = |G|*N(G,C)\\
\therefore N(G,C) = \frac{\sum_{f \in G}|C(f)|}{|G|}
\]

是不是感觉一脸懵逼,没关系,我们继续用上面的例子来说明:

\[
两种等价的计数方式为:\\
(16+4+2+2) = (4+4+1+1+1+1+1+1+1+1+2+2+1+1+1+1)\\
24 = (4*2+1*4+1*4+2*2+1*4),右边的为(权重*个数),个数和为16\\
24 = 24\\
以上我们解释了两种计数方案的相等性。\\
\\
\\
\\
继续:\\
24 = 4*(\frac{1}{1}+\frac{1}{1}+\frac{1}{4}*4+\frac{1}{4}*4+\frac{1}{2}*2+\frac{1}{4}*4)\\
发现右边的每一个等价类的权重和都为1
\]
好了,我们这样就证明好了Burnside引理。

Polya定理

实际上,Polya定理仅仅是改变了Burnside引理右边的计数的方法,这使得计数变得更加的简单。

我们知道,在使用Burnside引理的时候我们首先要枚举出来所有的染色方案数,然后在每种置换的情况下,统计所有的染色方案不变的情况。这样的时间复杂度为置换数染色方案数\(O(置换数*染色方案数)\),进一步可知,我们的染色的方案数的时间空间复杂度是幂次级别的。

以例1为例,我们仅考虑每一个格点,不考虑位置,我们进行下面的计算:

\[
Q:\left\{\begin{matrix}
q_1 = (1)\quad(2)\quad(3)\quad(4), & 旋转0°\\
q_2 = (1\quad 2\quad 3\quad 4) &, 逆时针旋转90°\\
q_3 = (1\quad 3)\quad(2\quad 4), & 逆时针旋转180°\\
q_4 = (4\quad 3\quad 2\quad 1)& 逆时针旋转270°
\end{matrix}\right.
\]
注意\(q_2, q_4\)是两种不同的方案,他们是这样产生的:

\[
q_2 = \begin{pmatrix}
1 & 2 & 3 & 4\\
2 & 3 & 4 & 1
\end{pmatrix} = (2\quad 3\quad 4\quad 1) = (1\quad 2\quad 3\quad 4), 可以进行轮换换序\\
q_4 = \begin{pmatrix}
1 & 2 & 3 & 4\\
4 & 1 & 2 & 3
\end{pmatrix} = (4\quad 3\quad 2\quad 1)
\]
置换\(f\)的循环分解中的循环个数记为

\[
\#(f)
\]

定理2:

设\(f\)是集合\(X\)的置换。如果我们用\(k\)种颜色对\(X\)的元素进行着色。设\(C\)是\(X\)所有的着色的集合。则\(f\)中保持着色不变的着色数为:

\[
|C(f)| = k^{\#(f)}
\]
这个式子并没有证明,意思就是每一个循环节看成一个等价类,这个等价类里面的元素的颜色全都相同。

然后我们就可以愉快的给出Polya的表示的形式了:

Polya定理

设\(Q\)(为了区分\(G\),实际上它们两的数量是相等的)是n个对象的一个置换群,用m种颜色涂染这n个对象,一个对象涂任意一种颜色,则在\(Q\)作用下不等价的方案数为:

\[
L = \frac{1}{|G|}\sum_{f \in G}m^{\#(f)}
\]
有了上面的这些定理之后呢,我们还是不能证明我们最初的问题,还需要一个工具:母函数!!!

母函数求解本质不同的染色问题

例2:用4种颜色涂3个编号分别为1,2,3的求,设颜色为b(蓝),g(绿),r(红),y(黄)。

解:

\[
P(b_1, b_2, b_3, g_1, g_2, g_3, r_1, r_2, r_3, y_1, y_2, y_3)\\
=(b_1+g_1+r_1+y_1)(b_2+g_2+r_2+y_2)(b_3+g_3+r_3+y_3)
\]
展开后就能得到所有的64种方案了。

那么我们仅仅关系用了哪些颜色,而不关心在哪些球上染色呢?

我们可以有:

\[
P(b, g, r, y) = (b+g+r+y)^3 \\
=(b^3+g^3+r^3+y^3)+[(3b^2g+3b^2r+3b^2y)+(3g^2b+3g^2r+3g^2y)+(3r^2b+3r^2g+3r^3y)+\\
(3y^2b+3y^2g+3y^2r)+(6bgr+6bgy+6bry+6gry)]
\]

它们的系数和是64,将使用颜色相同的视为同一种方案的话,本质不同的染色方案数为20,因为有20个项。

例3:用3种颜色b(蓝),r(红色),y(黄色)染4个不同的球, 将4个球分为2组,每组2个,要求同组的球色相同。

\[
P(b_1, b_2, r_1, r_2, y_1, y_2)\\
=(b_1^2+r_1^2+y_1^2)(b_2^2+r_2^2+y_2^2)
\]
展开后可以得到所有的方案。

我们改变Polya的表示方式,使之便于代入母函数。

Polya定理的母函数表示

我们将一个置换分解成若干的循环节之后。假设f的循环因子分解有\(e_1\)个1循环,\(e_2\)个2循环,\(\dots, e_n\)个n循环。

\[
1*e_1+2*e_2+\dots+i*e_i+\dots+n*e_n=n
\]
那么循环数\(\#(f)\)为

\[
\#(f) = e_1+e_2+\dots+e_n
\]
因为循环的类型仅取决于循环因子分解中的循环的阶数,与元素在哪一个循环中无关。所以,不同的置换可以有相同的类型,我们试图定义不同的类型来群分置换,所以引进n个未定的变元:

\[
z_1, z_2,\dots,z_n
\]
定义f的多项式为:

注释:它的定义是为了后面运用母函数的方便。
\[
mon(f) = z_1^{e_1}*z_2^{e_2}\dots z_n^{e_n}
\]
于是, 对于\(G\)中的每一个置换\(f\)的单项式进行求和,我们得到关于\(G\)中的置换按照类型的生成函数

\[
\sum_{f \in G}mon(f) = \sum_{f \in G}z_1^{e_1}z_2^{e_2}\dots z_n^{e_n}
\]
合并同类项,\(z_1^{e_1}z_2^{e_2}\dots z_n^{e_n}\)的系数等于同种置换类型的个数。

于是\(G\)的循环指数定义为该生成函数除以\(G\)中的置换的个数\(|G|\),

\[
P_G(z_1, z_2, \dots, z_n) = \frac{1}{|G|}\sum_{f \in G}z_1^{e_1}z_2^{e_2}\dots z_n^{e_n}
\]
我们以例1进行相应的说明:

变换的类型 置换拆分 置换的类型 单项式
旋转0° (1) (2) (3) (4) (4, 0, 0, 0) \(z_1^4\)
旋转90° (1 2 3 4) (0, 0, 0, 1) \(z_4\)
旋转180° (1 3) (2 4) (0, 2, 0, 0) \(z_2^2\)
旋转270° (4 3 2 1) (0, 0, 0, 1) \(z_4\)

定理3:

设\(X\)是元素集合,\(G\)是\(X\)的置换群,\(\{u_1, u_2, \dots, u_k\}\)是k种颜色的集合,C是X的任意着色集。这时,针对各颜色的数目C的非等价着色数的生成函数是

\[
P_G(z_1=u_1+u_2+\dots+u_k, z_2=u_1^2+u_2^2+\dots u_k^2, \dots, z_n = u_1^n+u_2^n+\dots+u_k^n)
\]
这里其实就是将\((z_1, z_2, \dots, z_n)\)替换成多项式,至于为什么可以这样替换,可以体会一下前面举的一些关于生成函数统计不同的方案数的例子。

我们还是用例1来体会:

设颜色为w(白色),b(黑色)
\[
P_G(z_1 = w+b, z_2=w^2+b^2, z_3 = w^3+b^3, z_4=w^4+b^4) \\
=\frac{1}{4}(z_1^4+z_2^2+2z_4) = w^4+w^3b+2w^2b^2+wb^3+b^4
\]
我们将它的系数相加,得到答案为6,与Burnside引理和前面的一般的Polya公式的计算结果一致!

实际上,我们为什么可以用\(m^{\#(f)}\)代入一开始的Polya公式呢?实际上生成函数也可以解释,生成函数的系数和必然为\(m^{\#(f)}\)

哈哈,终于把所有的知识和需要用的定理铺盖完毕!

下面,我们来解决我们最初的问题:

例:对正五边形的三个顶点着红色,对其余的两个顶点着蓝色,问有多少种非等价的着色?

其中置换的方法有旋转 \(0^{\circ}, 72^{\circ}, 144^{\circ}, 216^{\circ}, 288^{\circ}\), 穿过一个点做对称轴进行翻转。

Burnside引理的解法

置换方式P 循环因子分解(Polya定理使用) 不变的着色数
旋转\(0^{\circ}\)
旋转\(72^{\circ}\)
旋转\(144^{\circ}\)
旋转\(216^{\circ}\)
旋转\(288^{\circ}\)
过1号点翻转
过2号点翻转
过3号点翻转
过4号点翻转
过5号点翻转

首先表示出所有的情况:

我们按照Burnside的定义,填写第三列的值:

旋转\(0^{\circ}\):
\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10
\end{pmatrix}
= (f_1)(f_2)(f_3)(f_4)(f_5)(f_6)(f_7)(f_8)(f_9)(f_{10})
\]
发现有16个不动点。

顺时针旋转\(72^{\circ}\) :
\[
p_2 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
5& 6 & 7 & 1 & 8 & 9 & 2 & 10 & 3 & 4
\end{pmatrix}
= (f_5 f_8 f_{10} f_4 f_1)(f_6 f_9 f_3 f_7 f_2)
\]
发现有0个不动点。

顺时针旋转\(144^{\circ}\):
\[
p_3 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
8& 9 & 2 & 5 & 10 & 3 & 6 & 4 & 7 & 1
\end{pmatrix}
= (f_8 f_4 f_{5} f_{10} f_1)(f_9 f_7 f_6 f_3 f_2)
\]
发现有0个不动点。

同理我们算出旋转\(216^{\circ}, 288^{\circ}\) 的不动点的个数都是0。

穿过1号点(最上面的点,顺时针依次标号为1, 2, 3, 4, 5)的对称轴:
\[
p_6 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 \\
5& 2 & 9 & 8 & 1 & 7 & 6 & 4 & 3 & 10
\end{pmatrix}
= (f_5 f_1)(f_2)(f_3 f_9)(f_8 f_4)(f_7 f_6)(f_{10})
\]
有两个不动点。

同理,依次通过2, 3, 4, 5号点的对称轴,进行翻转的不动点都为2个。

于是我们可以填写下面的表:

置换方式 循环因子分解(Polya定理使用) 不变的着色数
旋转\(0^{\circ}\) 10
旋转\(72^{\circ}\) 0
旋转\(144^{\circ}\) 0
旋转\(216^{\circ}\) 0
旋转\(288^{\circ}\) 0
过1号点翻转 2
过2号点翻转 2
过3号点翻转 2
过4号点翻转 2
过5号点翻转 2

由Burnside引理,我们可以计算出不同等价类的染色数目为:

\[
L = \frac{10+0*4+2*5}{10} = 2
\]
实际上,我们有一个很直观的理解:

两个蓝色要么连在一起,要么两个蓝色中间间隔一个红色,总共有两种本质不同染色方案数。

Polya定理解法

Polya定理的基本形式:用m种颜色\(C ={c_1, c_2, \dots, c_m} 涂染个对象涂染n个对象S = {1, 2, \dots, n}\), 在S的置换群Q作用下, 不等价的方案数为:

\[
L = \frac{1}{\left | Q \right |}\sum_{q\in Q} m^{\lambda(q)}
\]
我们先填写第二列的表:

仅仅对节点进行变换,不考虑颜色。

旋转\(0^{\circ}\):

\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
1& 2 & 3 & 4 & 5
\end{pmatrix}
= (1)(2)(3)(4)(5)
\]
旋转\(72^{\circ}\):
\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
2& 3 & 4 & 5 & 1
\end{pmatrix}
= (2\quad 3 \quad4\quad 5\quad 1) = (1\quad 2 \quad3\quad 4\quad 5)
\]
旋转\(144^{\circ}\):
\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
3& 4 & 5 & 1 & 2
\end{pmatrix}
= (3\quad 5 \quad2\quad 4\quad 1) = (1\quad 3 \quad5\quad 2\quad 4)
\]
同理我们可以算出旋转\(216^{\circ}, 288^{\circ}\)的循环节。

经过1号节点的对称轴:

\[
p_1 = \begin{pmatrix}
1& 2 & 3 & 4 & 5 \\
1& 5 & 4 & 3 & 2
\end{pmatrix}
= (1)(2\quad 5)(3\quad 4)
\]
同理可以计算经过其他的节点进行翻转的循环节。

然后我们就可以填写下面的表了:

置换方式P 循环因子分解(Polya定理使用) 循环节的类型\((z_1, z_2, z_3, z_4, z_5)\)
旋转\(0^{\circ}\) (1) (2) (3) (4) (5) (5, 0, 0, 0, 0)
旋转\(72^{\circ}\) (1 2 3 4 5) (0, 0, 0, 0, 1)
旋转\(144^{\circ}\) (1 3 5 2 4) (0, 0, 0, 0, 1)
旋转\(216^{\circ}\) (1 4 2 5 3) (0, 0, 0, 0, 1)
旋转\(288^{\circ}\) (1 5 4 3 2) (0, 0, 0, 0, 1)
过1号点翻转 (1) (2 5) (3 4) (1, 2, 0, 0, 0)
过2号点翻转 (1 3) (2) (4 5) (1, 2, 0, 0, 0)
过3号点翻转 (1 5) (3) (2 4) (1, 2, 0, 0, 0)
过4号点翻转 (1 2) (3 5) (4) (1, 2, 0, 0, 0)
过5号点翻转 (1 4) (2 3) (5) (1, 2, 0, 0, 0)

1个(5, 0, 0, 0, 0), 4个(0, 0, 0, 0, 1), 5个(1, 2, 0, 0, 0)类型的

然后我们代入母函数:

\[
P_Q (Z_1, Z_2, Z_3, Z_4, Z_5) = \frac{1}{\left |Q \right |}*(Z_1^5+4*Z_5+5*Z_1Z_2^2) \\
P_Q (r+b, r^2+b^2, r^3+b^3, r^4+b^4, r^5+g^5) = \frac{1}{10}((r+b)^5+4(r^5+b^5)+5(r+b)(r^2+b^2)^2) \\
=\frac{1}{10}(10r^5+10r^4b+20r^3b^2+20r^2b^3+10rb^4+10b^5)
\]
我们单独观察\(r^3b^2\)的系数,发现是\(\frac{20}{10} = 2\),与我们的Burnside引理的计算结果一致!!

Burnside引理和Polya定理之间的联系的更多相关文章

  1. Burnside引理和Polya定理

    转载自:https://blog.csdn.net/whereisherofrom/article/details/79631703 Burnside引理 笔者第一次看到Burnside引理那个公式的 ...

  2. Burnside引理和polay计数学习小记

    在组合数学中有这样一类问题,比如用红蓝两种颜色对2*2的格子染色,旋转后相同的算作一种.有多少种不同的染色方案?我们列举出,那么一共有16种.但是我们发现,3,4,5,6是同一种,7,8,9,10是用 ...

  3. 置换群和Burnside引理,Polya定理

    定义简化版: 置换,就是一个1~n的排列,是一个1~n排列对1~n的映射 置换群,所有的置换的集合. 经常会遇到求本质不同的构造,如旋转不同构,翻转交换不同构等. 不动点:一个置换中,置换后和置换前没 ...

  4. Burnside引理与Polya定理

    感觉这两个东西好鬼畜= = ,考场上出了肯定不会qwq.不过还是学一下吧用来装逼也是极好的 群的定义 与下文知识无关.. 给出一个集合$G = \{a, b, c, \dots \}$和集合上的二元运 ...

  5. Burnside引理与Polya定理 学习笔记

    原文链接www.cnblogs.com/zhouzhendong/p/Burnside-Polya.html 问题模型 有一个长度为 $n$ 的序列,序列中的每一个元素有 $m$ 种取值. 如果两个序 ...

  6. Burnside引理和polay计数 poj2409 Let it Bead

    题目描述 "Let it Bead" company is located upstairs at 700 Cannery Row in Monterey, CA. As you ...

  7. 【uva 10294】 Arif in Dhaka (First Love Part 2) (置换,burnside引理|polya定理)

    题目来源:UVa 10294 Arif in Dhaka (First Love Part 2) 题意:n颗珠子t种颜色 求有多少种项链和手镯 项链不可以翻转 手镯可以翻转 [分析] 要开始学置换了. ...

  8. 等价类计数(Polya定理/Burnside引理)学习笔记

    参考:刘汝佳<算法竞赛入门经典训练指南> 感觉是非常远古的东西了,几乎从来没有看到过需要用这个的题,还是学一发以防翻车. 置换:排列的一一映射.置换乘法相当于函数复合.满足结合律,不满足交 ...

  9. 等价类计数:Burnside引理 & Polya定理

    提示: 本文并非严谨的数学分析,有很多地方是自己瞎口胡的,仅供参考.有错误请不吝指出 :p 1. 群 1.1 群的概念 群 \((S,\circ)\) 是一个元素集合 \(S\) 和一种二元运算 $ ...

随机推荐

  1. 值得一学的webpack4

    初识webpack webpack是帮助我们管理复杂项目的工具. 学习webpack会极大扩充前端开发视野. webpack可以实现: Tree shaking 懒加载 代码分割 webpack4速度 ...

  2. [C++]UVaLive7324 ASCII Addtion

    Description Nowadays, there are smartphone applications that instantly translate text and even solve ...

  3. 命令链接按钮QCommandLinkButton

    继承QPushButton 它的用途类似于单选按钮的用途,因为它用于在一组互斥选项之间进行选择,命令链接按钮不应单独使用,而应作为向导和对话框中单选按钮的替代选项,外观通常类似于平面按钮的外观,但除了 ...

  4. 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明

    通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明 错误原因是springmvc中的约束信息不对 <beans xmlns="http://w ...

  5. wireshark 抓包过滤器使用

    目录 wireshark 抓包过滤器 一.抓包过滤器 二.显示过滤器 整理自陈鑫杰老师的wireshark教程课 wireshark 抓包过滤器 过滤器分为抓包过滤器和显示过滤器,抓包过滤器会将不满足 ...

  6. important覆盖行内样式

    优先级,外部样式<内部样式<行内样式,后台富文本编辑器编辑的正文显示在前台时可用!important覆盖其行内样式 今天的问题,font-family:"思源黑体 CN!impo ...

  7. LeetCode第十六题-找出数组中三数之和最接近目标值的答案

    3Sum Closest 问题简介: 给定n个整数的数组nums和整数目标,在nums中找到三个整数,使得总和最接近目标,返回三个整数的总和,可以假设每个输入都只有一个解决方案 举例: 给定数组:nu ...

  8. 2018-2019-2 20165325 《网络对抗技术》 Exp5:MSF基础应用

    2018-2019-2 20165325 <网络对抗技术> Exp5:MSF基础应用 实验内容(概要) 1.1 一个主动攻击实践,本实验选择 ms17_010_eternalblue(成功 ...

  9. zimbra6同域名与同hostname与同系统异机恢复

    系统:redhat5.4_64 安装DNS:[root@test6 ~]# yum install bind -y[root@test6 ~]# yum install bind-chroot -y[ ...

  10. CentOS配代理服务器

    背景: 某云上有台Windows主机,为了省钱(...),购买的1M带宽... 然后日常只有我用,特别卡,嫌弃得不行. 最近接触到代理,琢磨代理连接到局域网内带宽大的主机,是否上网速度会蹭蹭得涨?实践 ...