簡體   English   中英

使用C#System.Random求解概率算法

[英]Using C# System.Random for a probabilistic algorithm

通過聲明我不是C#開發人員,讓我開始這個問題的開頭。 根據行業和選擇,我是C開發人員。 但是我必須在要上的課上使用Visual C#。

我一直在閱讀密碼安全的偽隨機數生成器和System.Random之間的差異。 每個人似乎都很清楚RNGCryptoServiceProvider的隨機性要強得多,但也要慢一些。

對於小組項目中的算法,我們將使用給定(固定)列表中的3個隨機節點,在25秒內盡可能多地對它們之間的路徑進行評分。

為了使我們的算法“完整”,我們需要確保每個節點的拾取次數與每個其他節點的接近次數相同。 為了使我們的算法“最佳”(或盡可能接近,因為我們可以近似計算),我們需要在25秒(或任何其他任意)期限內盡可能多地進行評分。

假設我們將使用Random的單個實例,但是我們將運行一個循環,該循環將快速連續調用3次Random.Next(),並將重復多次,Random會產生一個合理均勻的分配? 還是我們需要承擔RNGCryptoServiceProvider的額外費用,以確保我們沒有任何節點被完全跳過?

隨機會產生均勻分布。 Random的問題在於它在某種程度上是可以預測的-從一些隨機數中可以推斷出其余的隨機數流。 由於這對您來說不是問題,並且您只擔心均勻分布,因此Random應該足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM