• N根绳子连接成环问题


    1. 问题描述

    有绳子若干,随机选取两个绳头系在一起,直到所有的绳头都被系起来,这时将形成若干个环。问环的个数的期望是多少。

    2. 一般解法

    记绳子数为$N$时,环的个数为随机变量$X_N$,期望为$\mu_N=E\{X_N\}$。显然,$X_N$可能的取值为$1, 2, \dots, N$。直接的想法是计算$X_N$的概率分布$P\{X_N=m\}$然后再求期望,但显然过于复杂。考虑如下的思路:先随机选取两个绳头系在一起,有且只有两种结果:a. 这两个绳头属于一根绳子,于是形成了一个环,而剩下的$N-1$根绳子归结为规模为$N-1$的问题;b. 这两个绳头属于不同的绳子,于是这两根绳子形成了一根绳子,和剩下$N-2$共同构成了规模为$N-1$的问题。记a、b发生的概率分别为$P\{a\}, P\{b\}$,则有

    $$\mu_N=(\mu_{N-1}+1)P\{a\}+\mu_{N-1}P\{b\}$$

    下面计算a、b发生的概率。选这两个绳头时,第一个可以任选。而从剩下$2N-1$个绳头中选择第二个时,只有一种选择会产生情况a,即选中和第一个绳头属于同一根绳子的绳头;剩下$2N-2$种选择将产生情况b。于是

    $$P\{a\}=\frac{1}{2N-1} \\ P\{b\}=\frac{2N-2}{2N-1}$$

    于是有

    $$\begin{equation} \label{muN} \mu_N=\frac{1}{2N-1}(\mu_{N-1}+1)+\frac{2N-2}{2N-1}\mu_{N-1}\end{equation}$$

    $$\mu_N=\mu_{N-1}+\frac{1}{2N-1}$$

    展开即得通项公式

    $$\mu_N=\sum_{n=1}^{N}\frac{1}{2n-1}$$

    3. 深入讨论

    回到最初的思路上:计算各种情况的概率。其实,可以应用上面的思路,来计算这一概率。记$n$根绳子形成$m$个环的概率为$P(n,m)$。为此,考虑$n$根绳子形成$m$个环的所有可能情况为$Q(n,m)$。注意,这里我们视绳子和绳头是有顺序的,因此使用排列数而不是组合数。对于$Q(n,m)$,有递推公式

    $$\begin{equation} \label{Qnm} Q(n,m)=2nQ(n-1,m-1)+2n(2n-2)Q(n-1,m) \end{equation}$$

    上式含义为:$n$根绳子形成$m$个环,可以分成两种情况:a. 先选取一个绳子自己成环,共$2n$种情况,然后剩下$n-1$根绳子形成$m-1$个环。对应于第一项。b. 先选取两个不同绳子的绳头系在一起,共$2n(2n-2)$中情况,然后和剩下$n-2$根绳子共同形成$m$个环。对应于第二项。

    而$n$根绳子随机系成环的所有排列数为

    $$S(n)=(2n)!$$

    又$P(n,m)=Q(n,m)/S(n)$,即$Q(n,m)=P(n,m)S(n)$。代入($\ref{Qnm}$)即得$P(n,m)$的递推式

    $$\begin{equation} \label{Pnm} P(n,m)=\frac{1}{2n-1}P(n-1,m-1)+\frac{2n-2}{2n-1}P(n-1,m) \end{equation}$$

    是不是和$\mu_N$的表达式($\ref{muN}$)很像?其实这个式子可以从概率的角度理解。用$E(n,m)$表示$n$根绳子形成$m$个环的事件,$P(n,m)=P\{E(n,m)\}$。由全概率公式

    $$P(n,m)=P\{E(n,m)|a\}P\{a\}+P\{E(n,m)|b\}P\{b\}$$

    $a$发生的概率为$P\{a\}=1/(2n-1)$,b发生的概率为$P\{b\}=(2n-2)/(2n-1)$。而$P\{E(n,m)|a\}=P\{E(n-1,m-1)\}$,$P\{E(n,m)|b\}=P\{E(n-1,m)\}$。代入即得$P(n,m)$的递推式($\ref{Pnm}$)。

    4. 数值结果

    为了加强直观印象,用Matlab计算了前面几项的结果。$Q(n,m)$的数值如下

    n/m            1           2           3           4           5
    1              2
    2             16           8
    3            384         288          48
    4          18432       16896        4608         384
    5        1474560     1536000      537600       76800        3840

    $P(n,m)$的结果如下

    n/m         1         2         3         4         5
    1      1.0000         0         0         0         0
    2      0.6667    0.3333         0         0         0
    3      0.5333    0.4000    0.0667         0         0
    4      0.4571    0.4190    0.1143    0.0095         0
    5      0.4063    0.4233    0.1481    0.0212    0.0011

    可以验证$\sum_{m=1}^{n}P(n,m)=1$。

     

  • 相关阅读:
    增删改
    创建数据库
    数据库的列类型
    数据库
    Python os.ttyname() 方法
    Python os.tmpnam() 方法
    Python os.tmpfile() 方法
    Python os.tempnam() 方法
    Python os.tcsetpgrp() 方法
    LR运行负载测试场景-笔记
  • 原文地址:https://www.cnblogs.com/aquastone/p/Prob_ExpectOfCyclesWithNRopes.html
Copyright © 2020-2023  润新知