2D列表中的相邻元素

时间:2018-10-15 15:37:58

标签: multidimensional-array

我有一个2D列表,其编号从1到2 * n。 第一行包含从1到n的元素,第二行包含从(n + 1)到2 * n的元素。

我需要找出可能的组合总数(每个组合中都包含x个元素),以确保没有2个相邻的元素。

例如: n = 4,x = 3,所以我的列表看起来像这样:

l=[[1,2,3,4]
  [5,6,7,8,]]        

现在,组合总数为(n * 2)Cx = 56。

但是列表l中没有2个元素共享同一边的组合总数为18。

一些可能的组合是(1、3、6),(1、3、8),(1、4、6),(1、4、7),(1、6、8)等

但是(1,3,7)不可能,因为3和7彼此相邻。

n,x=map(int,raw_input().split())
l=[[],[]]
l[0]=map(int,xrange(1,n+1))
l[1]=map(int,xrange(n+1,(2*n)+1))

到目前为止,我只能这样做并计算可能的总组合。

如何计算组合总数,以使组合中不存在两个相邻元素。

我们将非常感谢您的帮助。谢谢。

0 个答案:

没有答案