伺服器隨機產生了一個 {1, 2, …, 100} 的子集 S ,並且同時發送給了 A 和 B 兩名前台工作人員。 A 、 B 兩名前台都接受其他人的提問,但為了保護數據,兩個人都只能用「是」或者「否」來回答問題,並且都不允許同一個人重複提問。你非常關心某個數 n 是否在這個子集里。其實,你本來可以直接問 A 和 B 中的任何一個人「
數字 n 是否在集合 S 里」,但是這樣一來,對方就知道了你想要查詢的是什麼。為此,你可以向 A 和 B 各問一個問題(結合兩人的回答便能推出集合 S 里是否包含
數字 n ),但卻不能讓 A 和 B 當中的任何一個人知道你查詢的是哪個數(我們假設 A 、 B 兩人不會串通起來,把他們各自收到的問題聯繫在一起)。事實上,你需要保證 A 和 B 兩人都不能從你的問題中獲取到任何信息,也就是說,對於 A 和 B 當中的任何一個人來說,各種問題出現的概率不會隨著 n 值的改變而改變。再換句話說,如果 n 的值變了,那麼 A 和 B 各自將會聽到的問題應該擁有和原來相同的概率分佈。