一道组合数学的题目,大家帮忙解释一下吧!

hyeena 2003-08-01 08:51:27
某机要部门安装了电子锁。M个工作人员每人发一张磁卡,卡上有开锁的密码特征。为了确保安全,规定至少要有N个人同时使用各自的磁卡才能将锁打开。现在需要你计算一下,电子锁上至少要有多少种特征,每个人的磁卡上至少有几个特征。如果特征的编号以小写英文字符表示,将每个人的磁卡的特征编号打印出来。要求输出的电子锁的总特征数最少。
...全文
118 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kbsoft 2003-08-03
  • 打赏
  • 举报
回复
TO 楼主:
必须有“任意N个人在一起都能将锁打开”这个条件,否则没发做!
Riemann 2003-08-03
  • 打赏
  • 举报
回复
题中并没有说N个人在一起就一定能够开锁。
hyeena 2003-08-03
  • 打赏
  • 举报
回复
怎么没人继续啊?
kbsoft 2003-08-03
  • 打赏
  • 举报
回复
由于“至少要有N个人同时使用各自磁卡才能将锁打开”,意思就是说任意N-1个人在一起,都无法将锁打开,从而必然缺少一种开锁的密码特征A;并且在其余的M-(N-1)个人中,任意一人加入到N-1个人中,他们就能将锁打开,所以这其余的M-(N-1)个人必同时拥有密码特征A。
容易证明:每N-1个人在一起,他们缺少的一种密码特征A不能和其他一组N-1个人一起缺少的密码特征相同(否则,由于这两组至少有N个不同的人,且他们都缺少密码特征A,故这些至少N个人在一起无法将锁打开,矛盾)。
从而电子锁上特征数tot应满足:
tot>=C(m,m-n+1)
另外,对于每一个工作人员T来说,在其余M-1个人中,任选N-1个人在一起,都会因为缺少某种特征而无法开锁,而这缺少的特征必须是T所具备的。
所以每个工作人员的磁卡上的特征数per应满足: per>=C(m-1,n-1)

初始时,特征数置为1,在M个人中每选取M-N+1个人的组合,就为组合中每个工作人员配备当前特征,并将特征数+1。这样,枚举出了所有的组合后,便得出了所有工作人员磁卡上特征的方案了。
Riemann 2003-08-03
  • 打赏
  • 举报
回复
在楼主的问题下,haohe(舒克)所说的“且所缺特征不能相同”是不成立的。因为楼主只是说了“至少要有N个人同时使用各自的磁卡才能将锁打开”,就是说即使N个人在一起也可能开不了锁。
Dragon132 2003-08-01
  • 打赏
  • 举报
回复
上面的是错误的,改正如下

分配问题

锁数s=C(M,N-1)把
每人的钥匙数y=C(M-1,N-1)把
锁号为1,2,3……s
分配
从M个的中选出M-N+1个人来给号码为1的锁的钥匙
再选出不同的M-N+1个人来给号码为2的锁的钥匙
……
……
选出与以上都不同的M-N+1个人来给号码为s的锁的钥匙
Dragon132 2003-08-01
  • 打赏
  • 举报
回复
同意 haohe(舒克) 的说法
任意N-1个人的组合(共有C_M^{N-1}种组合)都不能打开,说明至少缺一个特征,且所缺特征不能相同,所以电子锁的特征至少要有C_M^{N-1} +1

任何一个人,对其它M-1个人中任意N-1个人的组合,他都有一个与之相配的特征,因此,每个人至少要有C_{M-1}^{N-1}把钥匙

分配问题
锁数s=C(M,N-1)把
每人的钥匙数y=C(M-1,N-1)把
锁号为1,2,3……s
分配
从M个的中选出N-1个人来给号码为1的锁的钥匙
再选出不同的N-1个人来给号码为2的锁的钥匙
……
……
选出与以上都不同的N-1个人来给号码为s的锁的钥匙
Dragon132 2003-08-01
  • 打赏
  • 举报
回复
这个以前看过的,是箱子上锁的问题
hyeena 2003-08-01
  • 打赏
  • 举报
回复
我承认我理解能力差,楼上的,能不能再解释的详细一点啊,为什么所缺特征不能相同啊?
vldb 2003-08-01
  • 打赏
  • 举报
回复
任意N-1个人的组合(共有C_M^{N-1}种组合)都不能打开,说明至少缺一个特征,且所缺特征不能相同,所以电子锁的特征至少要有C_M^{N-1} +1

任何一个人,对其它M-1个人中任意N-1个人的组合,他都有一个与之相配的特征,因此,每个人至少要有C_{M-1}^{N-1}把钥匙


mountainlion 2003-08-01
  • 打赏
  • 举报
回复
对任意N-1个人,至少缺一种特征,因此锁上的特征不小于C(M,N-1)
对任意一个员工,至少拥有其余M-1人中的任意N-1人所不具有的一种特征,也即磁卡
中至少应有C(M-1,N-1)种特征.
编码就是生成算法了,这个简单
mountainlion 2003-08-01
  • 打赏
  • 举报
回复
建议看一下卢开澄<<组合数学>>清华大学出版社第一章的一个例子,那是一个特例,
很容易推广到你这个一般情况.

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧