1000个人,分两种:好人坏人。里面最少有501个是好人。
如果抽出来两个人,那么好人会说出另外一个人到底是好人还是坏人,而坏人的答案是不确定的。(类似于真话假话)
现在要用一个算法,找出一个一定是好人的人
最简单的方法:
那一个人出来和所有人放一起
如果超过501个人说他是好的,那他一定是好的,否则一定是坏的
这样的方法是可行的,但是复杂度是n方
要求要优化到n
想了半天都没想出来了,请高手支招
问题的关键是:一定要考虑最差情况。
如果抽出来两个人,那么好人会说出另外一个人到底是好人还是坏人,而坏人的答案是不确定的。(类似于真话假话)
现在要用一个算法,找出一个一定是好人的人
最简单的方法:
那一个人出来和所有人放一起
如果超过501个人说他是好的,那他一定是好的,否则一定是坏的
这样的方法是可行的,但是复杂度是n方
要求要优化到n
想了半天都没想出来了,请高手支招
问题的关键是:一定要考虑最差情况。
在一个由1000人组成,好人与坏人混杂的群体中,至少一半以上为好人。好人能准确辨认他人身份,而坏人则不能。本文探讨了如何通过算法找出至少一位确定的好人,介绍了传统方法及其复杂度,并寻求更高效解决方案。

被折叠的 条评论
为什么被折叠?



