子集

2013-03-16 47 views
1

我越来越好奇这个问题的总数..子集

你有多少种方法可以选择集合P =一个子集{1,2,3,... N}?该子集S应该满足以下条件:

当你选择X(X∈P,x是集合P的元素)来创建S,你不能选择S.

一个* X和B * X

约束:

1 <= n <= 1000 
2 <= a < b <= n 
b % a != 0 (b is not divisible by a) 

例子:

n = 3 , a = 2, b = 3 
so total subsets are 5 ,i.e, {}, {1}, {2}, {3}, {2, 3} 
as if in a particular subset there is 1 so 1*2 = 2 and 1*3 cant be there. 
so {1,2}, {1,3} and {1,2,3} can't be there 
+0

a * x? b * x?你能否澄清那些是什么? – 2013-03-16 21:45:46

+0

a * x = a和x的乘法...所以对于b * x – Shweta 2013-03-16 21:46:54

+0

a和b给出? – 2013-03-16 21:48:11

回答

0

我相信这将是容易计算的complimentary-是S的子集的数量不是人低于。这是S的子集数量,每个子集至少有一对(a,b),这样a除以b。在计算出数M'后,只需从S的子集总数中减去它即可得到2 n

现在要计算不允许的S的子集数量,您将必须应用inclusion-exclusion principle。这个解决方案不是很容易实现,但我不认为有一种替代方法。

1

更新

这是关系到OEIS,整数序列的在线百科全书sequence A051026 : Number of primitive subsequences of {1, 2, ..., n}

我不认为有任何简单的方法来计算条款。即使是循环的计算是不平凡的,除非n是素数,其中:

a(n) = 2 * a(n-1) - 1 

两个问题就在这里和“A051026”可以认为上述序列的推广的子问题。 “A051026”是具有(a,b,..) = (2,3,4,5...)的实例,例如“所有整数> = 2”。

+0

这是错误的。 {1,2,4},a = 1000,b = 100000是一个有效的集合。 – Knoothe 2013-03-17 07:10:47

+0

@Knoothe也许我不明白他在问什么。我等待OP澄清。如果我错了,我会删除答案。 – 2013-03-17 09:48:42

+0

a,b是输入,只给出两个。我将问题解释为:给定n,a,b是否可以给出算法来计算可能子集的数量。顺便说一句,OP是最有可能的一个她。 – Knoothe 2013-03-17 16:43:05