名人問題 Celebrity problem

2021-08-27 01:24:37 字數 542 閱讀 3836

問題:

在乙個房間裡有 n 個人,其中乙個是名人,所謂名人就是大家都認識他,但是他不認識任何人。其它人可能認識房間裡面另外的一部分人。你可以問任何人問題,但是問題只能是:你認識 x 嗎,對方回答 yes or no. 請問最少要問多少個問題才能把名人找出來?

分析:我們把人編號,比如從1 到 n。

我們考慮最壞情況:你問每乙個人是否認識 x ,如果大家都認識,那麼 x 一定是名人,如果其中乙個人說不認識,那麼那個人一定不是名人。因為 x 的範圍是 1 到 n, 所以,在最壞情況下,我們 要問 (n - 1)* n 個問題。

但是,有一種更好的方法。我們從1開始,依次問他是否認識他的下乙個,比如 2, 如果 1 說認識,那麼 1 一定不是名人,2 有可能是名人;如果1 說不認識,2 一定不是名人,1 卻有可能是名人。這是這個方法巧的地方。所以,不管1 回答是還是不是,我們都可以確定其中乙個不是名人,然後,我們繼續問 可能是名人那一位 是否認識 3, 然後依次下去,直到第 n 個人。這樣我們就可以只要問 (n - 1) 個問題就可以把名人找出來。

teng

歸納法之名人問題

黑土說,什麼名人,就是個人名!這裡的名人,不光是個人名,還是個孤陋寡聞的傢伙呢。名人問題 定義 在所有 n個人中,乙個被所有其他人知道但卻不知道別人的人。如果存在這樣的名人,找出來。判斷張三是否知道李四的唯一辦法是提問 查詢 張三 你知道李四嗎?這是找有向圖 g中的度為 v 的匯點。如果獲得了 g的...

IT名人部落格精選

3.馬雲 阿里巴巴集團主席兼首席執行官 4.雷軍 曾任金山公司總裁兼ceo,現任ucweb執行董事長 5.李開復 google全球副總裁,大中華區總裁 6.李想 泡泡網ceo 7.潘石屹soho中國 董事長 8.茅侃侃 北京愛航工業公司的首席架構師兼首席執行官 majoy 總裁 9.邵亦波 易趣創始...

O n 時間解決的面試題 名人問題

問題描述 有n個人他們之間認識與否用鄰接矩陣表示 1表示認識,0表示不認識 並a認識b並不意味著b認識a,也就意味著是個有向圖 如果乙個人是名人,他必須滿足兩個條件,乙個是他不認識任何人,另乙個是所有人必須都認識他。分析問題 首先,我們從中可以分析出,名人必定最多只有1個,因為如果有兩個名人ab,那...