0

我一直在寻找很长时间,但无法找到解决方案。我的问题是“假设你有 n 个路灯(不能移动),如果你从他们那里得到任何 m,那么它应该至少有 k 个工作。现在有多少种方法可以做到这一点”

这似乎是一个组合问题,但这里的问题是“m”必须是顺序的。

例如: 1 2 3 4 5 6 7 (路灯)
设 m=3
那么有效集合是
1 2 3
2 3 4
3 4 5
4 5 6
5 6 7


1 2 4 等是无效选择。

所以每组必须至少有 2 个工作灯。
我已经想出了如何找到满足条件所需的最少灯,但我怎样才能找到可以完成的方法数量?

当然应该有一些公式可以做到这一点,但我找不到它.. :(

4

2 回答 2

0

答案应该始终适用于wherem choose k的所有值。我将尝试解释原因;nn > m > k

例如,给定值,您可以首先为 4 盏灯的集合生成s 和s 的m = 10, n = 4, k = 2所有可能排列,其中恰好有 2 盏灯亮着;10

1100
0110
0011
1001
0101
1010

如您所见,有 6 个排列,因为4 choose 2 = 6. 您可以选择这 6 个排列中的任何一个作为前 4 个灯。然后,您继续该序列,直到您获得n(在本例中为 10 个)灯,确保您只在必须时添加一个零,以保持每 4 个灯亮 2 个的条件为真。您会发现序列只是重复;例如:

1100-> next 可以是 1,所以11001

Next 仍然可以是 1 并且满足条件,所以110011.

下一个现在必须是零,给出1100110,然后再次 -> 11001100。这只会持续到长度为n: 1100110011。鉴于前四个只能是上述集合之一,您只会得到 6 种不同的排列。

现在,由于序列对于 的任何值都会重复完全相同n,这意味着答案将始终是m choose k

对于您对 6,3,2 的评论中的示例,我只能找到以下排列:

011011
110110
101101

哪个有效,因为3 choose 2 = 3. 如果你能找到更多,那么我想我错了,我可能又误解了 :D 但根据我对这个问题的理解,我确信答案将永远是m choose k

于 2013-05-24T14:13:50.743 回答
0

应该永远是(n-m)+1。例如,10 盏灯(n = 10),5 组(m = 5):

1 2 3 4 5
2 3 4 5 6
3 4 5 6 7 
4 5 6 7 8
5 6 7 8 9
6 7 8 9 10

(10-5)+1 = 6套。

于 2013-05-24T09:32:04.293 回答