2011-04-20 49 views
1

所以我得到所有內置函數只會返回僞隨機數,因爲他們使用時鐘速度或其他硬件來獲取數字。更多隨機數

所以在這裏,我的想法是,如果我將兩個僞隨機數字按位並結合在一起,結果仍然是僞隨機的,或者它會更接近真正的隨機數。

我認爲如果我用數字搞亂了一點,那麼它可能不太可以複製,或者我弄錯了。

在旁邊注意爲什麼僞隨機問題?

+0

沒有「更隨機」的東西。 – 2011-04-20 10:51:38

+0

[Understanding「randomness」](http://stackoverflow.com/questions/3956478/understanding-randomness)的可能重複。 Belisarius在這裏的回答非常好,至少應該有800個上傳者中的大多數*。 – 2011-04-20 10:51:43

+0

您應該明確地閱讀Knuth的「計算機編程藝術」的第一章。他舉了一個例子,說明他做這種事情是錯的。最終算法是「少」隨機的。是的,這是違反直覺的。 – yogsototh 2011-04-21 07:28:23

回答

4

計算機執行的算法是確定性的。

如果存在非確定性輸入,則只能生成真正的隨機數。

僞隨機數字遵循重複序列。也許序列,但重複使他們可預測,因此不是真正的隨機。

您不能從兩個僞隨機數生成真正的隨機數。

編輯:把句子放在更合理的順序。

7

它不會更隨機,但存在一個很大的風險,即該數字會隨機性較差(較不均勻分佈)。你在想什麼按位運算符?

讓我們假設4位隨機數0101,1000。當OR:ed在一起時,你會得到1101.對於OR,對於1111會有一個明顯的偏向,其中AND爲0000.(獲得1或0的75%分別在每個位置)

我不認爲XOR和XNOR會有偏差。但是你也不會有更多的隨機性(參見Pavium的回答)。