假設我們有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