斯特林数、欧拉数的求和技术及应用

斯特林数和欧拉数

  斯特林数主要处理的是将N个不同元素分成k个集合或环的个数问题,可以分为第一类斯特林数和第二类斯特林数,其中第一类斯特林数还分为有符号和无符号两种。

第一类斯特林数

  第一类斯特林数表示的是将n个不同元素分成k个不同环的方案数,当且仅当两个环不可通过旋转得到时,则两个环不相同。表示法为:

[egin{bmatrix} n\ k end{bmatrix} ]

读作: n circle k.

  将n个不同元素分成k个不同的环有两种方式。第一种,有可能是n-1个元素分成了k-1个环,当前第n个元素独立成环。第二种可能是n-1个不同元素已经分为k个不同的环,当前元素插入这k个不同的环中,对于每个环,共有n-1种不同的插入方式,故:

 将n个不同元素分成k个不同的环有两种方式。第一种,有可能是n-1个元素分成了k-1个环,当前第n个元素独立成环。第二种可能是n-1个不同元素已经分为k个不同的环,当前元素插入这k个不同的环中,对于每个环,共有n-1种不同的插入方式,故:

[egin{bmatrix} 0\ 0 end{bmatrix}=1; egin{bmatrix} n\ k end{bmatrix}= egin{bmatrix} n-1\ k-1 end{bmatrix}+ egin{bmatrix} n-1\ k end{bmatrix}*(n-1) ]

此即为第一类斯特林数的递归式,也可写作: s(n,k)=s(n-1, k-1)+s(n-1, k)*(n-1)

第二类斯特林数

  第二类斯特林数表示将n个元素分成k个非空集合的方案数,集合内是无序数。我们可以很简单得出递推方程:分为两种情况,如果前n-1个元素组成了k-1个非空集合,则当前元素应自成一个集合;第二种情况,如果前n-1个元素组成了k个集合,则当前元素可以放进这k个集合中的任意一个,则递推方程为:

[egin{Bmatrix} n\ k end{Bmatrix}= egin{Bmatrix} n-1\ k-1 end{Bmatrix}+k* egin{Bmatrix} n-1\ k end{Bmatrix} ]

也可写作: (S(n,k)=S(n-1, k-1)+k*S(n-1, k))

通项公式: (S(n, m)=frac{1} {m!}sum_{k=0}^{m}(-1)^k C_{m}^{k}(m-k)^n)

欧拉数

  欧拉数(langleegin{smallmatrix}n\ kend{smallmatrix} angle)({1,2,...,n})的有k个升高的排列(pi_1pi_2...pi_n)的个数,也即是说,在其中k个地方有(pi_j<pi_{j+1})

下面试图求出(langleegin{smallmatrix}n\ kend{smallmatrix} angle)的递归式,如果用所有可能的方法插入一个新元素n, 那么({1,...,n-1})的每个排列( ho= ho_1... ho_{j-1}n ho_{j}... ho_{n-1}).如果j=1或者( ho_{j-1}< ho_{j})(pi)中升高的个数就与( ho)中升高的个数一样;如果( ho_{j-1}> ho_j)或者j=n,那么它要比( ho)中的个数大1.于是,(pi)有k个升高,这其中有((k+1)langleegin{smallmatrix}n-1\ kend{smallmatrix} angle)种方式从有k个升高的排列( ho)获得,加上有(((n-2)-(k-1)+1)langleegin{smallmatrix}n-1\ k-1end{smallmatrix} angle)种方式从有k-1个升高的排列( ho)得到。所求的递归式是:

[langleegin{smallmatrix}n\ kend{smallmatrix} angle=(k+1)langleegin{smallmatrix}n-1\ kend{smallmatrix} angle+(n-k)(k+1)langleegin{smallmatrix}n-1\ k-1end{smallmatrix} angle, 整数n>0 ]

求和技术

  1. (egin{bmatrix}n\ kend{bmatrix})是n个元素恰好包含k个轮换的排列的个数。如果对所有的k求和(egin{bmatrix}n\ kend{bmatrix}),必定得到排列的总数[1]:

    [sum_{k=0}^{n}egin{bmatrix}n\ kend{bmatrix}=n!, 整数ngeq 0. ]

  2. [x^n=sum_kegin{Bmatrix} n\ k end{Bmatrix}x^{underline k}, 整数ngeq0\ x^n=sum_kegin{Bmatrix} n\ k end{Bmatrix}(-1)^{n-k}x^{overline k}, 整数ngeq0\ x^{overline n}=sum_{k}egin{bmatrix} n\ k end{bmatrix}x^k, 整数ngeq0\ x^{underline n}=sum_{k}egin{bmatrix} n\ k end{bmatrix}(-1)^{n-k}x^k, 整数ngeq0 ]

  3. [x^n=sum_klangleegin{matrix}n\ kend{matrix} angleinom{x+k}{n}, 整数ngeq0\ langleegin{matrix}n\ mend{matrix} angle=sum_kinom{n+1}{k}(m+1-k)^n(-1)^k\ m!egin{Bmatrix}n\ mend{Bmatrix}=sum_klangleegin{matrix}n\ kend{matrix} angleinom{k}{n-m}\ langleegin{matrix}n\ mend{matrix} angle=sum_kegin{Bmatrix}n\ kend{Bmatrix}inom{n-k}{m}(-1)^{n-k-m}k! ]

    1. 斯特林数恒等式的求和算法[2]:

    以上算法的一些计算样例:

    (1)证明:

    [sum_k(-1)^{m-k}k!inom{n-k}{m-k}S_2(n+1,k+1)=E_1(n,m)quad (n,mgeqslant0) ]

    对于左侧的和式,通过上述算法可以得到:

    [(m-n)g(n,m)-(m+2)g(n,m+1)+g(n+1,m+1)=0 ]

    通过观察,对于n=0和任意m右侧满足相同的递推性和恒等式,从而证明了该恒等式。

    (2)类似的,证明:

    [sum_k(-1)^kinom{2n+1}{k}S_2(n+m+1-k,m+1-k)=E_2(n,m)quad (n,mgeqslant0) ]

    左侧和式可以得到:

    [(2n-m)g(n,m)+(m+2)g(n,m+1)-g(n+1,m+1)=0 ]

    通过观察,对于n=0和任意m右侧满足相同的递推性和恒等式,从而证明了该恒等式。

    该算法可以很容易地进行拓展,例如也可以包含微分算子,这对于验证伯努利多项式恒等式非常有用。

    (3)比如,考虑以下恒等式:

    [sum_kinom{m}{k}y^{m-k}B_k(x)=B_m(x+y) ]

    其中(B_n)表示第n项伯努利多项式,该多项式满足:

    [D_xB_n(x)-nB_{n-1}(x)=0 ]

    上述算法的一个微小改变的版本可以发现上式满足微分方程:

    [D_xf(m+1,x,y)-(m+1)f(m,x,y)=0 ]

    通过观察到对于m=0和任意的x,y以及x=y=0和任意m,右侧均满足相同的递归性和恒等式,可以证明上述恒等式。

    上述求和公式的部分证明:

    (1)(x^n=sum_ {k}egin{Bmatrix}n\ kend{Bmatrix}x^k, 整数ngeqslant 0.)

    [已知:x*x^underline{k}=x^underline{k+1}+kx^{underline{k}},\ 因为,x^{underline{k+1}}=x^{underline{k}}(x-k),则:\ egin{aligned} x*x^{n-1}&=xsum_kegin{Bmatrix}n-1\ kend{Bmatrix}x^{underline{k}}\ &=sum_kegin{Bmatrix}n-1\ kend{Bmatrix}x^{underline{k+1}}+sum_kegin{Bmatrix}n-1\ kend{Bmatrix}kx^{underline{k}}\ &=sum_kegin{Bmatrix}n-1\ k-1end{Bmatrix}x^{underline{k}}+sum_kegin{Bmatrix}n-1\ kend{Bmatrix}kx^{underline{k}}\ &=sum_k(kegin{Bmatrix}n-1\ kend{Bmatrix}+egin{Bmatrix}n-1\ k-1end{Bmatrix})x^{underline{k}}\ &=sum_kegin{Bmatrix}n\ kend{Bmatrix}x^{underline{k}}end{aligned} ]

    也即是说,斯特林子集数是产生通常幂的阶乘幂的系数。

    (2)(x^{overline{n}}=sum_kegin{bmatrix}n\ kend{bmatrix}, 整数ngeqslant 0)

    因为斯特林轮换数是产生阶乘幂的系数,则:

    [egin{align} &x^{overline{0}}=x^0,\ &x^{overline{1}}=x^1,\ &x^{overline{2}}=x^2+x^1,\ &x^{overline{3}}=x^3+3x^2+2x^1,\ &x^{overline{4}}=x^4+6x^3+11x^2+6x^1,\ 则有:&(x+n-1)x^k=x^{k+1}+(n-k)x^k\ 根据上述证明可知:&(x+n-1)x^{overline{n-1}}=(x+n-1)sum_kegin{bmatrix}n-1\ kend{bmatrix}x^k=sumegin{bmatrix}n\ kend{bmatrix}x^k,\ &则导出:x^{overline{n}}=sum_kegin{bmatrix}n\ kend{bmatrix}x^k, 整数ngeqslant 0 end{align}​ ]

应用

斯特林数的应用

  1. 基于stirling图枚举算法的分球入盒问题求解[3]

  将p个有区别的球放入q个相同的盒子中,要求所有盒子都非空这个问题,要求利用算法枚举出所有具体的分球方案。利用多倍体的多个单体型和环境群体微生物的深度DNA测序序列重构该群体的微生物基因组问题是生物信息学研究的热点,这与分球入盒在本质上是类似的。受斯特林数的递归公式的启发,提出了一个新的数据结构——stirling图。在此基础上设计算法枚举p个不同球分配到q个相同盒子里的所有不同的方案。Stirling图是一个有向无环图,其节点用S(j,k)来标记(j>=k>=1)。stirling图的节点分为两类,一类是终端节点S(k,k)和S(j,1),一类是非终端节点S(j,k)(j>k>1)。非终端节点S(j,k)节点有左右两个孩子节点,其左孩子节点为S(j-1,k-1),右孩子节点为S(j-1,k)。图中用一条标签为P(j)=k的k条有向边指向其左孩子节点,用标签分别为P(j)=1, P(j)=2,…,P(j)=k的k条有向边指向其右孩子节点。对于两个节点S和S’,如果存在一条路径从S到S’, 则S为S’的先驱节点,S’是S的后继节点。

  在stirling图中从非终端节点S(j,k)到其后继终端节点的一条路径代表把p个不同的球分配到q个非空的相同盒子的一种分配方案。如从S(3,2)到S(2,1)的路径代表一个分配方案:P(1...2)=1, P(3)=2; 即将前两个球放到一个盒子里,第三个球放到单独的盒子了。假设将p个有区别的球放入q个相同的盒子中,当盒子允许为空时,则其方法数为F(p,q)=S(p,1)+S(p,2)+…+S(p,q)。则从非终端节点S(j,k)到其所有后继终端节点的路径,就代表把j个不同的球分配到k个非空相同盒子的所有不同分配方案。所以构建完成stirling图后,输出从任意非终端节点到终端节点的路径,就可以得到分球入盒问题的分配方案。如果方案总数过多,可以按照均匀分配随机采样输出指定个数的不同的分配方案。

  拓展开来,下面介绍如何利用斯特林数,快速求出分球入盒问题的方案数。设集合A有n个元素,将A分成k类且每类中至少有r((ngeqslant kr))个元素,定义A的k-r划分方法的数目为(S(n, k,r)),称之为广义第二类stirling数。将n个可辨的求放入k个可辨别的盒子中(盒内无序),每盒至少r个球,其方案数为q(n, k, r),则:

[q(n, k, r)=k!S(n, k, r) ]

  证明:先将n个球分成k类且每个类中至少r个球,有(S(n,k,r))种分法;然后将每类分别各放入一个盒子中,有(k!)种放法。从而满足条件的分配方案数为(k!S(n,k,r))

  1. n元集合X到k元集合Y的满射的个数为S(n,k)[4]

  设(sigma)是n元集合到k元集合Y的满射,则sigma对应着n元集合X的一个k类划分,于是,n元集合X到k元集合Y的满射和n元集合X的一个k类划分建立了一一对应的关系。因此,n元集合X到k元集合Y满射的个数是S(n,k)

  1. stirling数的概率表示及其应用[5]

  假设r.v序列(u_1,u_2,..,i.i.d~U[0,1])(Gamma_1,Gamma_2,..,i.i.d~Gamma(1)),并且r.v (u_i)(Gamma_j)独立,则当(n,kgeq 1)时,

[S(n,k)=inom{n}{k}E(u_1+u_2+...+u_k)^{n-k}\ S(n,k)=frac{1}{(n-k)!}E(Gamma_1+2Gamma_2+...+kGamma_k)^{n-k}\ s(n,k)=(-1)^{n-k}inom{n}{k}E(u_1Gamma_1+u_2Gamma_2+...+u_kGamma_k)^{n-k} ]

其中S(n,0)=S(0,k)=0, S(0,0)=1, s(n,0)=s(0,k)=0, s(0,0)=1

  这里是将两类stirling数分别表示成某些随机变量和的矩,这种概率表示时对stirling数的1种构造性描述,从而为研究stirling数提供了新的工具。

  第二类Stirling数S(n,k)和第一类Stirling数s(n,k)有以下性质:

[(1)S(n,1)=1, S(n,n)=1, S(n,2)=2^{n-1}-1 S(n,n-1)=inom{n}{2}\ (2)s(n,1)=(-1)^{n-1}(n-1)!, s(n,n)=1, s(n,2)=(-1)^{n-2}(n-1)!H_{n-1},\ s(n,n-1)=-inom{n}{2},其中H_n为调和数 ]

  通过上述Stirling数的概率表示,可以发现两类stirling数满足下列恒等式证明上式,由于:

[frac{1}{k}sum_{m=k-1}^{n-1}inom{n}{m}S(m,k-1)=sum_{m=k-1}^{n-1}inom{n}{m}S(m,k-1)\ sum_{m=k-1}^{n-1}inom{n}{m}k^{n-m}S(m,k)=sum^n_{m=k}k^{n-m}S(m-1.k-1)\ sum^{n-1}_{m=k-1}(-1)^{n-m-1}(n-m-1)!inom{n}{m}s(m,k-1)=sum_{m=k-1}^{n-1}(-1)^{n-m-1}inom{n}{m}s(m,k-1) ]

证明:由于:

[kS(n,k)=sum_{m=k-1}^{n-1}inom{n}{m}S(m,k-1)\ S(n,k)=sum_{m=k-1}^{n-1}inom{n-1}{m}S(m,k-1) ]

因为u~U[0,1]时,1-u~U[0,1],所以

[egin{align} S(n,k)&=inom{n}{k}E(u_1+u_2+...+u_k)^{n-k}\&=inom{n}{k}E(k-((1-u_1)+(1-u_2)+...+(1-u_k)))^{n-k}\&=inom{n}{k}Esum_{i=0}^{n-k}inom{n-k}{i}k^i(-1)^{n-k-i} end{align} ]

则:

[egin{align} [(1-u_1)+(1-u_2)+...+(1-u_k)]^{n-k-i}&=sum_{i=0}^{n-k}(-1)^{n-k-i}inom{n}{i}k^iS(n-i,k)\&=sum_{m=k}^n(-1)^{m-k}inom{n}{m}k^{n-m}S(m,k) end{align} ]

结合(S(n,k)=sum_{m=k}^nk^{n-m}S(m-1,k-1)),即可得到(sum_{m=k}^nk^{n-m}S(m-1,k-1))

再由:

[ks(n,k)=sum_{m=k-1}^{n=1}(-1)^{n-m-1}(n-m-1)!inom{n}{m}s(m,k-1)\ ks(n,k)=sum_{m=k-1}^{n-1}(-1)^{n-m-1}inom{n}{m}s(m,k-1) ]

可以得到:

[sum^{n-1}_{m=k-1}(-1)^{n-m-1}(n-m-1)!inom{n}{m}s(m,k-1)=sum_{m=k-1}^{n-1}(-1)^{n-m-1}inom{n}{m}s(m,k-1) ]

因此可以通过概率方法研究两类Stirling数,得到一些性质和递推公式或者恒等式。

  1. 证明:对质数(pgeqslant 3), p整除(S_2(p,m)(1<m<p))[6].

首先证明:(S(n,m)=frac{1}{m!}sum_{k=0}^{m-1}(-1)^kC^k_m(m-k)^n=sum_{k=1}^{m}frac{(-1)^{m-k}k^{n-1}}{(k-1)!(m-k)!})(1)

(A(n,m)=sum_{k=1}^{m}frac{(-1)^{m-k}k^{n-1}}{(k-1)!(m-k)!})

(1) 当m=1,A(n,m)=S(n,m)

将m=1代入得(A(n,1)=1),由(S(n,1)=1(ngeqslant1)), 故(A(n,1)=S(n,1))

(2)当n=1,(A(n,m)=S(n,m))

已知(A(1,1)=S(1,1)),由(S(1,m)=0(mgeqslant2))下面证明:(A(1,m)=0(mgeqslant2))

n=1代入,(A(1,m)=sum_{k=1}^{m}frac{(-1)^{m-i}}{(i-1)!(m-i)!}).对任意(mmgeqslant1),设数列{(a_k)}, {(b_k)}分别为

[a_k=frac{(-1)^k}{(k-1)!(m-k)!}(1leqslant kleqslant m),\ b_k=frac{(-1)^k}{(k-1)!(m-k+1)!}(1leqslant kleqslant m+1),\ 则sum_{k=1}^{m+1}=pm A(1,m+1) ]

显然,

[a_k=a_{k-1}-a_{k-1}frac{m}{k-1}, b_k=-frac{a_{k-1}}{k-1} ]

于是(a_k=a_{k-1}+mb_k), 即

[a_2=a_1+mb_2\ a_3=a_2+mb_3,\ ...\ a_m=a_{m-1}+mb_m ]

相加得(frac{a_m-a_1}{m}=-b_1-b_{m+1}+sum_{k=1}^{m+1}b_k),于是(A(1,m+1)=pm(frac{a_m-a_1}{m}+b_1+b_{m+1})=0).即对于(m>2),有A(1,m)=0

(3)假设(A(n-1,m-1)=S(n-1,m-1), A(n-1,m)=S(n-1,m)),代入(S(n,m)=S(n-1,m-1)+mS(n-1,m)), 即得(A(n,m)=S(n,m))

(4)假设对任意(ngeqslant1)和某一个m,(A(n,m)=S(n,m)),且(A(1,m+1)=S(1,m+1)),由(3)及数学归纳法,(A(n,m+1)=S(n,m+1))

(5)由(1)(2)(4)及数学归纳法,对任意(ngeqslant1,mgeqslant1, A(n,m)=S(n,m))

[S(p,m)=sum_{k=1}^{m}frac{(-1)^{m-k}k^{p-1}}{(k-1)!(m-k)!},\ S(1,m)=sum_{k=1}^{m}frac{(-1)^{m-k}}{(k-1)!(m-k)!}=0\ 于是,S(p,m)=S(p,m)-S(1,m)=sum_{k=1}^{m}frac{(-1)^{m-k}(k^{p-1}-1)}{(k-1)!(m-k)!} ]

由于((k,p)=1),由费马小定理知(p|k^{p-1}-1,1leqslant kleqslant m)

而又(m!S(p,m)=sum_{k=1}^{m}(-1)^{m-k}kC^k_m(k^{p-1}-1)),故(p|m!S(p,m)),由于((p,m!)=1),故(p|S(p,m)). 证毕

欧拉数的应用

  1. 利用欧拉数计算

  求幂

[x^n=sum_klangleegin{matrix}n\ kend{matrix} angleinom{x+k}{n}, 整数ngeqslant0. ]

这也被称为Worpitzky恒等式。

  求自然数前n项幂的和[7]

[sum_{k-1}^n r^n=sum_{k=1}^nA_{n,k}inom{m+k}{n+1} ]

将n次幂和分解为n类组合之和,每类组合的个数依欧拉数分布。

  可利用欧拉数(E_k)将某些函数展开成幂级数[8],例如:

[sec x=1+sum _{k=1}^{infty }frac{E_k}{(2k)!}x^{2k}, egin{vmatrix} x end{vmatrix}<frac{c}{2}\ sech x=1+sum _{k=1}^{infty }frac{(-1)^kE_k}{(2k)!}x^{2k}, egin{vmatrix} x end{vmatrix}<frac{c}{2} ]

  利用(E_k)可求如下一类级数的和[8,9,10],例如:

[sum_{k=1}^{m}(-1)^kk^n=frac{1}{2}[(-1)^mE_n(m+1)-E_n(1)]\ sum_{n=1}^{infty }frac{(-1)^{n-1}}{(2n-1)^{2k-1}}=frac{c^{2k+1}}{2^{2(k+1)}(2k)!}E_k ]

  利用(E_k)可求如下一类广义积分[11]:

[int _0^infty frac{2x^{2k}}{e^{frac{c_x}{2}}+e^{-frac{c_x}{2}}}dx=E_k\ int _0^infty frac{x^{2k-1}}{e^{2c_x}-1}dx=frac{1}{4k}B_k=frac{(-1)^{k-1}}{4k}U_{2k}=frac{(-1)^k}{4(4^k-1)}T_{2k-1} ]

  1. 矩形NAM图像表示[12]

  更少的数据量和更快速的运算时图像表示方法所追求的目标。传统的图像层次结构因为强调对称性而不能得到最优化分割,非对称逆布局模式表示模型(Non-Symmetry and Anti-Packing Pattern Representation Model, NAM)是借鉴Packing问题的思想提出的一种图像表示方法,它的非对称层次结构使其与传统的层次结构(如四元数)相比需要更少的计算量,而采用的基于像素块的运算方式使它在进行一些图像处理运算时速度要由于基于像素点的运算方式,使用矩形子模式的矩形NAM图像表示和基于它的欧拉数计算很好的证明了这一点。

  欧拉数是重要的拓扑学特性之一,如果一幅图像的孔洞数为H,连接部分数目为C,那么欧拉数可以用(E=C-H)获得,根据欧拉公式的推广,即对于任意的(p(pgeqslant 1))个连通分支的平面图G,有(n-m+r=p+1)成立,其中n为G中的顶点数,m为边数,r为面数。假设一幅图像有W个顶点,Q条边,R个面,C个连通分支(也就是连通物体数目),因此有(W-Q+R=C+1),又因为图像的R个面可以分为三个部分,即F个前景物体面,H个背景面(也就是孔数)和一个外部面,因此有(W-Q+F+H+1=C+1),故

[W-Q+F=C-H ]

因此可以得到欧拉数的另外一种计算方式,即

[E=W-Q+F ]

  二值图像的欧拉数的计算方法有很多,迄今为止计算欧拉数最简单有效的算法是通过查找一些固定的图像模板个数来实现,对于NxN的图像,其算法复杂度为(O(N^2))

总结

  本文首先介绍了斯特林数和欧拉数的相关定义和性质,之后分别介绍了他们相关的求和技术。最后介绍了斯特林数在分球入盒,概率表示以及欧拉数在计算和图像领域的应用。

参考文献

[1] Graham R L, Knuth D E, Patashnik O, et al. Concrete mathematics: a foundation for computer science[J]. Computers in Physics, 1989, 3(5): 106-107.

[2]Kauers M. Summation algorithms for Stirling number identities[J]. Journal of Symbolic Computation, 2007, 42(10): 948-970.

[3]彭哲也, 谢民主. 一种基于Stirling图枚举算法的分球入盒问题求解[J]. 计算机应用与软件, 2017, 34(10):248-251.

[4]李淑玲. 第二类Stirling数的性质及其应用[J]. 胜利油田职工大学学报, 2001(4):47-49.

[5]毛俊超, 祝丹忱, 赵熙强. Stirling数的概率表示的新应用[J]. 中国海洋大学学报(自然科学版), 2006, 36(s1):222-224.

[6]任逸. 第二类Stirling数的一个计算公式及其应用[J]. 数学通报, 2008, 47(3):59-59.

[7]罗见今. 李善兰对Stirling数和Euler数的研究[J]. Journal of Mathematical Research with Applications, 1982, 2(4):173-182.

[8]王连祥等编.数学手册( 1979年 5月出版 ). P227- 231

[9]王端中.欧拉 ( Euler)多项式与级数的和.宁夏教育学院 .银川师专学报 (自然科学版 ) , 1994( 3) , P45- 48

[10]王端中. 伯努利(Bernoulli)多项式及级数K~n的和[J]. 宁夏工学院学报, 1995(Z1).

[11]王端中.一类级数的和及其应用 .数学通报 , 1991( 4) , P33- 35

[12]陈传波, 夏晖, 秦培煜,等. 矩形NAM图像表示及其上欧拉数计算[J]. 小型微型计算机系统, 2007, 28(12):2233-2237.

原文地址:https://www.cnblogs.com/mengnan/p/9307521.html