這樣能不能解決電腦科學的百萬富翁問題?

時間 2021-05-31 00:50:24

1樓:知使用者

關鍵問題是這台機器不一定是可信的

然後我就寫了個這個:

2樓:玩兒的就是心跳歸來

題主的方法顯然是錯的,百萬富翁問題裡是沒有可信的第三方的,題主給的機器就是第三方。關於這個問題matrix67中介紹過乙個方法,

Matrix67: The Aha Moments

這個演算法也是姚期智先生關於百萬富翁問題的解法,在知乎裡也有關於這個解法的介紹孤雁伴月:混淆電路(Garbled Circuit)(一):姚氏百萬富翁問題

@程墨Morgan 的答案裡提到了解決這個問題的思路,我把這個思路的具體實現過程也大概的寫出來。

在介紹這個思路之前,需要找到乙個可以交換的加密解密演算法。加密演算法記為Enc1,Enc2,對應的解密演算法記為Dec1,Dec2。這兩個加密機密演算法滿足

對於任意x,都有

Dec1(Enc1(x)) = x, Dec2(Enc2(x)) = x,

Dec1(Dec2(x)) = Dec2(Dec1(x))

滿足以上條件的加密解密方法很多,隨便選擇一種就行。

我們把問題簡化一下,假如有兩個百萬富翁Alice和Bob各有錢i和j,i和j都介於1到10之間。他們想知道誰的錢多,但是又不想把自己的錢數量告訴對方。

假設Alice擁有加密解密演算法Enc1,Dec1;Bob擁有加密解密演算法Enc2,Dec2。Alice先隨機生成10個整數,滿足前i-1個數以0結尾,第i個數以1結尾,第i+1到第10個數以2結尾,這10個數字分別記為x1,x2,x3,...,x10,並用分別用演算法Enc1進行加密,加密後的數字記為X1,X2,...

X10。Alice把加密後的10個數字告訴Bob。

Bob找到X1,X2,...X10中第j個數字,記為X,並對X用Enc2進行加密,記為Y=Enc2(X),然後Bob把Y交給Alice。Alice對Y進行解密記為Z = Dec1(Y) = Dec1(Enc2(X)) ,然後Alice把解密後的Z告訴Bob,Bob對Z進行解密,記為x = Dec2(Z) = Dec2(Dec1(Enc2(X))),由於Dec1與Dec2可交換,所以x = Dec2(Dec1(Enc2(X))) = Dec1(Dec2(Enc2(X))) = Dec1(X)。

Bob看到解密後的x的最後一位數,就可以判斷j與i的大小了。(x最後一位為0,則ji。)Bob就可以把結果告訴Alice了。

(注:Bob不可以把解密後的x直接告訴Alice,否則Alice就知道Bob的財產j了。)

在@程墨Morgan 的答案中,第1步有點問題,箱子中的每個金幣銀幣以及銅幣都是有區別的,不能把Alice當做君子,認為Alice不會做記號。第8步也有問題,解鎖的過程不是兩人同時在場,共同開鎖,而是一定要Alice先秘密開鎖,然後Bob再秘密開鎖。開鎖後箱子裡的結果不可以讓Alice看到,只有Bob可以看到。

現有計算機不能解決哪些問題?

計算機 包括圖靈機等類似計算模型 只是二階邏輯的物理實現,二階邏輯上不可判定的問題計算機當然也做不出來。至於人工智慧之類的問題不是做不出來,只是不能在可行時間內計算出來。 楊個毛 Turing Church Thesis 凡是能用物理裝置算出來的,計算機都能算出來。注意這東西是個形式上不嚴密的猜想,...

藍洞到底能不能解決吃雞的外掛程式問題?

八方美人 不能,沒有這個技術實力。而且根據現在的狀況來看,他們也缺乏動力去封鎖外掛程式,他們現在的重心只是檢測玩家用沒用外掛程式,感覺用了就先封了,被申訴了就進一步檢查一下確實沒開掛就解封。開了外掛程式的,被封了還會再去買乙份遊戲,這是藍洞喜聞樂見的 很久沒玩吃雞了,看完春晚排了兩把,一把穿牆自瞄,...

計算機裡面的計算機的算力能不能超越產生它的計算機

臨時調整 第乙個問題答案是不可能的,因為乙個計算機A裡模擬的計算機B,當計算機B進行運算時所有的算力都是A付出的,並且由於模擬關係和指令集轉換過程導致實際付出的算力是B所消耗的數倍,即使再怎麼優化B,也只能提公升了轉化率,極限可能就是像vmware那樣的虛擬機器 第二個問題其實首先它是個悖論,你在宇...