假设我们有N人并且有可能是里面的一群名人。寻找名人群体的线性算法,不是单名人
每个人都知道每个名人,每个名人都知道其他名人。
如果给出的功能know x y
其中returns true or false
,确定名人群。
这个问题是标识一组名人的,它是不识别人当中唯一的名人,如http://www.geeksforgeeks.org/the-celebrity-problem/。
使用蛮力很容易。我可以构建N个人的所有可能的子序列并用条件过滤它们(每个人都知道每个名人,每个名人只知道其他名人)。
另外我知道必须只有一个名人组或没有。
证明:
假设我们有两个名人组,C1和C2。因为每个人都知道C1的ci,所以每个来自C2的cj也知道ci;对称地,每个ci知道cj;所以C1和C2实际上属于一个组。所以我们至多有一个名人团体或没有。
关于可能的任何想法线性算法?
编辑
有可能是一组名人的,有可能是没有。
一位名人是否知道其他名人?在任何一个名人都知道每个其他名人? – isick
@isick是的,正好 –
一个非名人是否也可以知道其他非名人的数量? – Dukeling