我正在開發一些C語言庫,可供各種用戶應用程序使用。不使用rand()/ srand()的隨機數發生器C函數
庫應該是完全「透明的」 - 用戶應用程序可以初始化並確定,並且它不應該看到正在運行的應用程序中的任何更改。
的問題是 - 我用C srand()函數/蘭特()在庫初始化函數, 這意味着庫確實影響用戶的應用程序 - 如果用戶產生的隨機數,他們將受到影響由於rand()已被調用。
那麼,任何人都可以指向一些簡單的非GPL替代rand()中的隨機數發生器嗎?
它不一定非常強大 - 我沒有對數字做任何加密。 我正在考慮寫一些小的,非常簡單的發生器(類似於需要時間和異或的東西,並用一些素數和bla bla bla做一些事情),但我想知道是否有人有一個更體面的發電機的指針。
for windows use GetTickCount()但我不確定它是否會影響GetLastError()或不。 –
在Linux上從/ dev/urandom中讀取。如果這一般速度太慢,您可以使用它來播種另一種算法。 – ams