You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数字组合定位问题咨询:非相邻约束下的排列计数

不相邻元素排列问题的解题思路

Hey,我来拆解这两个不相邻排列的问题,核心都是插空法,只是元素是否有差异导致细节处理不同,咱们一步步来:

2A:4个0和5个1排成一行,任意两个0不相邻的排列数

你提到的基础结构0101010其实已经找对方向了——要让4个0不相邻,至少需要3个1放在0之间(也就是0_0_0_0的下划线位置各放1个1),这时候已经用掉3个1,还剩5-3=2个1需要安排。

关键是这2个1能放哪儿?把已有的「4个0+3个分隔用的1」看作整体,它的空隙包括:

  • 第一个0的前面
  • 每两个0之间的空隙(已有1,但可以再加)
  • 最后一个0的后面

总共是4+1=5个空隙(n个元素的前后+中间总共有n+1个空隙)。

分两种情况计算:

  1. 2个1放同一个空隙:从5个空隙选1个,有C(5,1)=5种方式
  2. 2个1放不同空隙:从5个空隙选2个,有C(5,2)=10种方式

加起来总共5+10=15种排列方式。

换个更直接的插空法思路:先排5个1(因为1相同,只有1种排法),这时候5个1形成5+1=6个空隙,从6个空隙里选4个放0(0也相同),直接算C(6,4)=15,结果完全一致~

2B:1-9各出现一次,任意两个偶数不相邻的排列数

逻辑和2A本质一致,但所有数字都是不同的,所以要考虑排列数,步骤如下:

  1. 先排奇数:1-9里有5个奇数(1,3,5,7,9),它们的全排列数是5! = 120种
  2. 找空隙插偶数:5个奇数排好后,形成5+1=6个空隙(首尾+中间),从这6个空隙里选4个放偶数(2,4,6,8)
  3. 排偶数:4个不同的偶数可以任意排列,全排列数是4! = 24种

总的排列数就是:
5! × C(6,4) × 4! = 120 × 15 × 24 = 43200

这里的C(6,4)也可以换成P(6,4)(从6个空隙选4个并排列),结果一样:P(6,4)=6×5×4×3=360,120×360=43200。

内容的提问来源于stack exchange,提问作者Lucky12456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:31:39