趣題:尋找策略使得總有一人猜出他背上的數

來源:互聯網
上載者:User

正在上虛詞研究課,好友Chain發來簡訊說,北大BBS化學學院版上發了一道很有趣的謎題,已經上十大熱門話題第三了。我也是第一次看到這個題目,和大家分享一下。

話說周一某實驗室有16名同學,有一天*老師把大家叫到一起說:下周來做實驗的時候,我會給你們每個人背後貼一張紙,紙上的數字從1到16都有可能,不同同學背後的數字可以重複。你們每個人可以看到別人背上的數字,但不能看到自己的數字。貼紙之後你們之間不允許進行任何形式的溝通交流。之後你們排隊依次來D***,告訴我你自己背後的數字是多少;由於D***室隔音效果很好,室外的人不能聽到室內的同學的說話聲(更好的說法是,每個人獨自在一張小紙條上寫下猜測結果,這就避免了可能由排隊猜數的時間和順序帶來的“交流”)。等到16名同學都猜完之後公布結果。只要你們16個人中間能有一個人猜對自己背後的數字,我會讓大家都得滿分;但如果你們都沒有猜對自己背後的數位話,則你們全部都要重修有機實驗。那麼你要怎樣做才能避免掛科的命運呢?

這道題目很有意思,看答案之前不妨自己先想一下。

 

 

提示:先從兩個人的情況開始想起。

 

 

 

 

答案:為了下面敘述的簡便,我們把數字1到16簡單地替換為0到15。遊戲前,大家按某種順序給所有人從0到15依次編號。遊戲開始後,每個人把自己能看到的15個數與自己的編號一起異或起來(按位異或),在猜數時報出這個異或的結果。這個方案能保證總有一個人恰好報出自己的數。假設這16個數異或起來的結果為X(顯然0
≤ X ≤ 15),第i個人身上的數記為A_i,那麼他猜的數其實就是X xor A_i xor
i。那麼,編號為X的人(此時i=X)報出的數恰好就是他背上的那個數。對於數字1到16的情況,只需要在計算前後減一加一即可。
這個問題可以從n=2的情形很快入手。當n=2時,只需其中一個人報和對方一樣的數,另一個人報和對方不一樣的數即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.