开锁问题请您解决!

lifanxi 2000-05-23 06:51:00
有如下一个有关算法的问题: 某单位共有M个人,在门上设置了一个密码锁,必须N个人同时到场才能将锁打开(N<M)。现将门锁设计一个密码,问:

1.此锁的密码共有几位数?

2.每人可以知道其中的几位密码?

答案是:1.密码位数为:C(M,N-1)(M为上标,N为下标)

2.每人知道的密码位数为:C(M-1,N-1)(M-1为上标,N-1为下标)

为什么是这样的一个答案?
...全文
361 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifanxi 2000-07-10
  • 打赏
  • 举报
回复
下面是标准答案,供大家参考:
题目告诉我们“至少有n个人同时在场才能打开锁”。换言之,任意n-1个人在一起,不能开锁,余下的m-(n-1)个人中的任意一人到场,就可以开锁。由m个人中的m-n+1的组合数为c(m,m-n+1),故应有c(m,m-n+1)个码。对于任一个人来说,其余m-1个人中任意n-1个人在场,至少缺少一个这个人工作人员知道的密码而无法开锁,所以每个人到少要知道c(m-1,n-1)个密码。
Erlin 2000-07-06
  • 打赏
  • 举报
回复
我来试试吧。设密码位数为K,每人密码数为L,则有
C(K,L) = M,即每个人分L个密码有M种分法。
C(K-1,L)+1 = N,即若要使门不开,最坏情况下有一个密码不在N-1个人身上,这N-1个人在K-1个密码中取L个值的方法数为C(K-1,L),再加上一个人正好等于N.
不知道是不是这个答案。
lifanxi 2000-06-23
  • 打赏
  • 举报
回复
我当然知道这是一道很经典的信息学竞赛题,我就是从一本NOI的培训教程上找到的,上面没答案。现在我在另一本书上找到了答案,我不想不给我的网友分,所以我将于7月10公布答案,在此之前谁答出我就把分给谁。
Larky 2000-06-19
  • 打赏
  • 举报
回复
这曾经是山西省高中计算机竞赛的一道编程题!
lifanxi 2000-06-06
  • 打赏
  • 举报
回复
我自己找到答案了!
可以从没办法开锁的角度去考虑,大家再想想,谁想出来分就给谁。
NowCan 2000-05-30
  • 打赏
  • 举报
回复
难度还真大,Asima说的也许正确。
Asima 2000-05-26
  • 打赏
  • 举报
回复
我觉得这个问题的数学模型是这样的,用线性代数描述
已知存在M个两两互不相关的x维向量
每一个向量中有y个元素为1其余的全为零
其中任意N个向量相关,任意N-1个向量不相关
求x,y
x就是密码位数,y就是每个人知道的密码位数
答案我还没有想好,但是我会认真考虑这个问题的
lifanxi 2000-05-26
  • 打赏
  • 举报
回复
答案肯定是对的。
starmoon 2000-05-23
  • 打赏
  • 举报
回复
答案不对

33,007

社区成员

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

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