一道面试题目 一个保险柜需N把钥匙打开7人各有M把钥匙 需4人到场才能打开保险柜问至少有多少把不同的钥匙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我上面的写错了,sorry这个可以用鸽巢原理应该为大于(3*m-1)/(n-1)的最小整数 我觉得说35把是正确结果的人混淆了问题本身c74得到的结果是7个人里选4个人的组合数,有35个组合,并不代表要有35把钥匙如果按照这样理解,那如果题目变成了要7个人到场才能打开门,则钥匙的数量是c77=1,只要一把钥匙就可以了,hoho,而实际上呢,还是至少要7把钥匙。所以说,35把是绝对错误的 假设n把钥匙的编号为n1……nn.第一个人拿的钥匙为n1,n2……nm,如果要使n最小,那么就应该这样排第二个人,n2,n3……,nm+1第三个人,n3,n4……,nm+2第四个人,n4,……,nm+3……第七个人,n7,……nm+6由于需要4个人才能开门,那么前4个人的钥匙加起来要有n1到nn的所有编号。所有就有nm+3=nn,那么n=m+3把7个人的钥匙都加起来,正好凑够4套钥匙,那么就有7m=4n解方程式{7m=4nn=m+3}得到结果,n=7,m=4如果n小于7的话,那第一个人和第7个人拿的钥匙相同,那就不对了 我同意 hadecsdn(悟知) 的。 java gif 转jpg 再请大家帮看看这个JDBC连SQL SEVER报的错 请问用什么方法使JTree中的某个结点滚到滚动栏的第一行? JS中这个东西怎么弄,一个数字去对应一个字母如97对应a 菜鸟提问 double类型如何正确的转换为字符串类型? JAVA有哪些考证的啊.... 一个简单的问题,请人指点!! 请问:怎样在FileDialog中加入对扩展名的选择? 如何在jbuilder下使用按钮弹出一个新的frame 请问一个日期格式化的问题 关于JAVA线程的问题
这个可以用鸽巢原理
应该为大于(3*m-1)/(n-1)的最小整数
所以说,35把是绝对错误的
第一个人拿的钥匙为n1,n2……nm,
如果要使n最小,那么就应该这样排
第二个人,n2,n3……,nm+1
第三个人,n3,n4……,nm+2
第四个人,n4,……,nm+3
……
第七个人,n7,……nm+6
由于需要4个人才能开门,那么前4个人的钥匙加起来要有n1到nn的所有编号。
所有就有nm+3=nn,那么n=m+3
把7个人的钥匙都加起来,正好凑够4套钥匙,那么就有7m=4n
解方程式{
7m=4n
n=m+3
}
得到结果,n=7,m=4
如果n小于7的话,那第一个人和第7个人拿的钥匙相同,那就不对了
我同意 hadecsdn(悟知) 的。