链式不相邻问题
问题:有Σ:{1,2,3⋯n},从Σ中取出m个数,并且此m个数不能彼此相邻,试问有多少种取法。
这个问题在组合数学中有结论,也给出了证明,但是我没有足够的耐心把证明看完,自己用高中排列组合的知识导出了结果,供参考。
如下方示意图所示,
第一步,将m个球摆成一排放桌子上,如示意图中的蓝球,为了保证这m个球不相邻,中间的m-1个空位必须放入其他球,而首尾的两个空位可以放球也可以不放球。
第二步,还剩下n−m个球,如示意图中的红球,将这些n−m个球分成m+1份,用来分隔第一步中的m个球。运用插板法进行分隔,则需要m个板。分隔的要求是:首尾两份中可以有球,也可没有,中间的m-1份中每份中至少有一个球。那么,很容易得到共有Cmn−m+1插板方法。
第三步,将第二步分好的m+1份红球对应地放入第一步的m个蓝球当中去,根据蓝球的位置从Σ中取数,可以保证取出来的数彼此不相邻。这种取法既不重复也不会遗漏。因此共有Cmn−m+1种取法。

环形不相邻问题
把上面的问题稍作修改,视Σ中的n和1也是相邻的,即Σ中的数组合成了一圈。那么从Σ中取出m个数,并且此m个数不能彼此相邻,问有多少种取法呢?
求解环形不相邻问题比较简便的方法就是将环形不相邻转换为链式不相邻,从而利用链式不相邻的结论。
先从n个球中任取一个球,共有n种取法从(n球并不相同),那么,该球左右两侧各有一个球都不能被取了,如下方示意图所示。此时环形正好被断开,相当于剩下n−3个数,从中取m−1个数,使之彼此不相邻的链式不相邻问题,共有取法Cm−1n−m−1。所以,共有取法为nCm−1n−m−1种。

这个不相邻的问题,我是在赛码网碰到的“排座位”问题中出现的。圆桌有n个座位,有m个客人,有多少中排座位的方法,使得客人彼此不相邻。该问题可以通过上述结论,大为简化。