这个问题来自于How To Share a Secret -- Adi Shamir

原文是这样的:Eleven scientists are working on a secret project. They wish to lock up the documents in a cabinet so that the cabinet can be opened if and only if six or more of the scientists are present. What is the smallest number of locks needed? What is the smallest number of keys to the locks each scientist must carry?

 

刚开始看到此题,没什么思路,下文中给出了两个数字,锁为462个,钥匙是252,并且说不难想通。

在底下想了很久,发现不是那么容易,后来和毕老师讨论了一下,有了一些思路。

如果在11个人里面任意6个人组成一组,那么总共有C11-6 = 462种情形,也即462组,假设有462把锁,那么把这462把锁的钥匙一一分配给这些组。

现在分析每个人得到多少把钥匙

现在我们把11个人编号,在462组里就可以分成两类,一类是含有1号选手的,那么这一类是多少个呢?就是在剩余的10个人里面选5个出来,即C10-5 = 252,另外一类是不含1号选手的,有C10-6 = 210个。

so,1号选手就持有252把钥匙了。如此类推,每个选手都持有252把钥匙。

现在需要证明6个人可以打开这462把钥匙,而5个人就不行。

我们不妨先看1号到6号这6个选手能否打开所有的锁,即1~6号选手是否持有不少于462把钥匙

先考虑1~6号选手组合的情形,C6-6 = 1,6个人都持有的钥匙只有1把, C6-6 = 1

6个选手中5个持有而另外一个没有持有的钥匙数为C6-5 * C5-1 = 30

2~5号选手持有而1号选手没有的钥匙,即2~5号选手和其他非一号选手组成的组数,即C5-1 = 5

1,3~5号选手持有而2号选手没有的钥匙,即1,3~5号选手和其他非2号选手组成的组数,即C5-1=5

......

6个选手中4个持有而另外两个没有的钥匙数为C6-4 * C5-2 = 150

6个选手中3个持有而另外3个没有的钥匙数为C6-3 * C5-3 = 200

6个选手中2个持有而另外4个没有的钥匙数为C6-2 * C5-4 = 35

6个选手中1个持有而另外5个没有的钥匙数为C6-1 * C5-5 = 6

1~6号选手所持有钥匙的总和就是上述各种情况的总和,上述6种情形相加,刚好是462,即6个人能够打开所有462把锁,而5个人就不行

由于在我们的分析过程中1~11号的地位是等价的,所以1~6号具有一般性,可以6任意6个

关于462和252是否最小,今天天色已晚,明天再说~~

 

 

posted on 2012-03-19 22:06  shosciation  阅读(750)  评论(0编辑  收藏  举报