求助一个分配钥匙的问题

numbbuaa 2011-04-04 01:01:39
我最近遇到个问题,想了好久也没什么思路,希望大家帮忙想一下啊,先谢了。
问题是这样的:
11位科学家正在从事一项秘密工作。为了保密,大家约定:文件要锁在保险柜中,少数人无法打开保险柜,取出文件,除非人数超过了6个。问:要做到这一点,至少需要给保险柜上多少把锁?每个科学家至少要配备多少把钥匙?
...全文
408 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
帖子不能编辑 2011-04-15
  • 打赏
  • 举报
回复
不好意思,我的是错的。 csdn为什么不能修改自己的帖子呢?


[Quote=引用 25 楼 xdxiaofeng 的回复:]

我说的配两把锁,一把锁有5把钥匙,另外一把锁有6把钥匙。
每个科学家给一把钥匙。

有什么问题吗?
满足要求了阿,只要少于7个人就打不开两把锁。
只要 >=7个人在场,就可以打开箱子。

引用 24 楼 numbbuaa 的回复:

21楼很强啊!答案正确!
[/Quote]
帖子不能编辑 2011-04-15
  • 打赏
  • 举报
回复
我说的配两把锁,一把锁有5把钥匙,另外一把锁有6把钥匙。
每个科学家给一把钥匙。

有什么问题吗?
满足要求了阿,只要少于7个人就打不开两把锁。
只要 >=7个人在场,就可以打开箱子。

[Quote=引用 24 楼 numbbuaa 的回复:]

21楼很强啊!答案正确!
[/Quote]
numbbuaa 2011-04-14
  • 打赏
  • 举报
回复
21楼很强啊!答案正确!
aliezeng77 2011-04-14
  • 打赏
  • 举报
回复
答案对不?
aliezeng77 2011-04-12
  • 打赏
  • 举报
回复
sorry,应该是:

仔细想了下,设至少需要n把锁,用矩阵A[11*n]表示人与锁的关系,A[i,j]=1表示第i个人有第j把锁的钥匙,A[i,j]=0表示第i个人没有第j把锁的钥匙,则问题转化为求最小的n使得,从A中任取7行,这7行组成的新矩阵B[7*n]中每列都有1;从A中任取6行,这6行组成的新矩阵C[6*n]至少有一列全为0
aliezeng77 2011-04-12
  • 打赏
  • 举报
回复
仔细想了下,设至少需要n把锁,用矩阵A[11*n]表示人与锁的关系,A[i,j]=1表示第i个人有第j把锁的钥匙,A[i,j]=0表示第i个人没有第j把锁的钥匙,则问题转化为求最小的n使得,从A中任取7行,这7行组成的新矩阵B[7*n]中每列都有1;从A中任取5行,这5行组成的新矩阵C[5*n]至少有一列全为0
aliezeng77 2011-04-12
  • 打赏
  • 举报
回复
若有题解,则至少需要462把锁,每个人需配备210片钥匙。

结论1 不能使用锁链
锁链指多把锁互相锁定,打开其中任一把锁,锁链中其它锁都失去锁定作用的策略。
证明:可使用一把锁代替锁链的作用,但是使用的锁数比锁链少,所以不能使用锁链。

结论2 每把锁至少需配5片钥匙
证明:若某把锁少于5片钥匙,则11人中至少有7人分配不到此锁钥匙,于是此7人不能开不了此锁,故取不出文件,与超过6人能打开文件的题设矛盾!

结论3 至少需使用462把锁
证明 从11人中任取6人都不能打开文件,则至少存在一把锁此6人不能打开,但剩下5人任意加入一人都能打开文件,故此5人都能打开此锁。有C(11,5)=462故知至少需要462把锁。又因每把锁至少需要5片钥匙,故每人分配钥匙数为462*5/11=210片

结论4 462把锁,每把锁5片钥匙,C(11,5)每种组合一把锁,组合中的每个人配一片此锁的钥匙,每人210片钥匙就是题解。
证明:从11人中任取7人,则能打开任意一把锁。假设某把锁不能打开,则此7人中无人有此锁钥匙,则此锁最多只有11-7=4片钥匙,与每把锁5片钥匙矛盾!从11人中任取6人,必存在一把锁,剩下5人能打开此锁,于是此6人打不开此锁,故取不到文件!
aliezeng77 2011-04-12
  • 打赏
  • 举报
回复
若有题解,则至少需要462把钥匙,每个人需配备210片钥匙。

结论1 不能使用锁链
锁链指多把锁互相锁定,打开其中任一把锁,锁链中其它锁都失去锁定作用的策略。
证明:可使用一把锁代替锁链的作用,但是使用的锁数比锁链少,所以不能使用锁链。

结论2 每把锁至少需配5片钥匙
证明:若某把锁少于5片钥匙,则11人中至少有7人分配不到此锁钥匙,于是此7人不能开不了此锁,故取不出文件,与超过6人能打开文件的题设矛盾!

结论3 至少需使用462把钥匙
证明 从11人中任取6人都不能打开文件,则至少存在一把锁此6人不能打开,但剩下5人任意加入一人都能打开文件,故此5人都能打开此锁。有C(11,6)=462故知至少需要462把锁。又因每把锁至少需要5片钥匙,故每人分配钥匙数为462*5/11=210片
  • 打赏
  • 举报
回复
题中说到少数人不能打开,也就是说5人打不开6人可以打开 这样符合常理 但又说超过6人才能打开 到底是几个人打开几个人打不开啊?
帖子不能编辑 2011-04-11
  • 打赏
  • 举报
回复
两把锁,一个配5把钥匙,一个配6把钥匙。

结果是怎么来的呢,分析如下:

题目中说了人数超过6个才可以打开,就是说至少7个人同时在,才可以打开。

那么,任意一个锁的钥匙数量都必须大于或者等于5,因为所有其它的钥匙加起来必须小于或等于6。
每把锁的钥匙都 >=5,那么只有一中情况:
一把锁配5把钥匙,另一把配6把钥匙。


aliezeng77 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 litaoye 的回复:]

这样不能保证任何6人都能开所有的锁。

引用 11 楼 aliezeng77 的回复:
怎么会无解呢?11片钥匙对应11把锁,每人一片就是一个解,当然不一定是题目的解
[/Quote]

sorry!应该用布尔代数实现,输入11个变量,当有6个或6个以上变量为1时输出1,否则输出0
考虑了下,
绿色夹克衫 2011-04-11
  • 打赏
  • 举报
回复
我理解题目的意思是,n把锁,没把可以配若干钥匙,分给科学家,要求任何5人的钥匙放在一起,不能开所有n把锁,任何6人在一起,可以开所有的锁。

[Quote=引用 12 楼 aliezeng77 的回复:]
11片钥匙对应11把锁,每人一片就是题解。
[/Quote]
绿色夹克衫 2011-04-11
  • 打赏
  • 举报
回复
这样不能保证任何6人都能开所有的锁。

[Quote=引用 11 楼 aliezeng77 的回复:]
怎么会无解呢?11片钥匙对应11把锁,每人一片就是一个解,当然不一定是题目的解
[/Quote]
aliezeng77 2011-04-11
  • 打赏
  • 举报
回复
11片钥匙对应11把锁,每人一片就是题解。

反正法:
假如某人有两片不同锁的钥匙,当他和另外有四片不同锁的钥匙的四人在一起时,他们五人就能打开6把锁,矛盾!
所以每人不能多于一片钥匙!
再反证每人都至少有一片钥匙,所以每人有且只有一片钥匙。

再反证没有两钥匙开同一把锁,假如有两片钥匙开同一把锁,那么当这两片钥匙的主人和另外四个人在一起时6个人只能开5把锁,矛盾!所以必须11把锁
aliezeng77 2011-04-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 litaoye 的回复:]
任何5个人打不开,任何6人能打开。这个问题似乎无解呀,除非锁有特殊的用法,用抽屉原则也许能够证明。
[/Quote]

怎么会无解呢?11片钥匙对应11把锁,每人一片就是一个解,当然不一定是题目的解
绿色夹克衫 2011-04-07
  • 打赏
  • 举报
回复
任何5个人打不开,任何6人能打开。这个问题似乎无解呀,除非锁有特殊的用法,用抽屉原则也许能够证明。
simengru 2011-04-07
  • 打赏
  • 举报
回复
标记一把,等牛人解答
hengdengshi88 2011-04-07
  • 打赏
  • 举报
回复
同意楼上~
ccltiancai 2011-04-07
  • 打赏
  • 举报
回复
看不懂题……
I_code 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 edison4555 的回复:]
7把锁5把钥匙
[/Quote]

这个答案怎么分析出来的。
加载更多回复(5)

33,026

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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