爲什麼在XOR-Shift算法中使用按位異或運算符(用於生成隨機數)而不是其他按位操作,如OR,AND ..等?爲什麼他們在XOR-Shift算法中使用按位異或運算符?
-2
A
回答
2
XOR是唯一的按位運算符,它可以將位從0切換到1或1到0.在任何反饋算子中這都是必不可少的,它應該生成一個非單調函數,並且專門用於生成一個周期函數,因此f(n + N)= f(n),對於某些N.
例如添加比特將產生非週期簡單序列:
0,1,11,111,1111,11111,...,直到所有位都被填充或 0,10,1010,101010,10101010,...
安定比特將產生相反的效果,其中,所述初始值應設置所有位:
1111111 ... 1,...,1111,111,11,1,0
在數學意識到第一個序列是純粹增長的,最後一個序列正在減少,沒有一個產生甚至是看似隨機的序列。
相關問題
- 1. 爲什麼我們使用按位運算符?
- 2. 不使用算術運算或按位運算符的加法
- 3. 爲什麼此算法在Java中使用按位和運算符?
- 4. 按位運算符:爲什麼〜35 = -36?
- 5. C++按位或運算符
- 6. 在javascript中使用按位運算符
- 7. 爲什麼要使用按位運算符?
- 8. 爲什麼使用按位運算符檢查鼠標點擊?
- 9. 什麼是按位|運算符
- 10. 爲什麼在C++中使用按位運算
- 11. 爲什麼我們需要在java中使用移位運算符?
- 12. CUDA:爲什麼按位運算符有時比邏輯運算符更快?
- 13. Java:如何在按位異或運算符中評估條件? (^)
- 14. 爲什麼在Java中捕捉多個異常時使用按位或運算符(|)?
- 15. GLSL - 爲什麼預留位運算符?什麼是使用按位運算的好替代(浮點運算按位模擬)
- 16. 按位運算符
- 17. 按位運算符
- 18. 利用按位運算符有什麼好方法?
- 19. 爲什麼不能直接在流中使用按位運算符?
- 20. 爲什麼這個函數用按位運算符翻譯?
- 21. Ruby中<=>運算符的名稱是什麼?他們稱之爲什麼?
- 22. 在序言中,按位否定運算符(\)是做什麼的?
- 23. 卡桑德拉按位運算和運算符(&,或,非)
- 24. 使用按位運算符的模式
- 25. PostgreSQL如何使用按位運算符| =
- 26. 如何使用按位運算符
- 27. 如何使用按位運算符?
- 28. 什麼是按位AND運算符&做什麼?
- 29. 爲什麼這個按位運算符會導致錯誤?
- 30. 爲什麼這個語句與按位運算符相同呢?
因爲它有效嗎? –
因爲否則名稱XOR-Shift會引起誤解。 – Henry