簡體   English   中英

數學網。 隨機源

[英]MathNet. RandomSource

.Net 包“MathNet.Numerics.Distributions”包含一個方法Normal(double mean, double stddev, Random randomSource)

前兩個參數是double ,可以輕松設置。 但是第三個參數Random randdomSource引起了麻煩。

有人知道設置它並在Normal(double mean, double stddev, Random randomSource)使用它嗎?

嘗試這個:

var randomSource = new Random();

不過,最好的做法是在任何應用程序中只創建一個Random實例 - 這是為了避免創建多個共享相同隨機種子的Random實例的可能性。

所以你最好做這樣的事情:

public static class Global
{
    [ThreadStatic] public static readonly Random Random = new Random();
}

然后你會像這樣調用你的方法:

Normal(0.0, 1.0, Global.Random);

正如其他人已經回答的那樣,使用沒有第三個參數的構造函數,即Normal(double mean, double stddev)

在處理隨機來源和分布時,我們建議遵循以下規則:

  • 隨機源僅用於對具有分布的隨機數進行采樣。 如果您不需要生成隨機數,請不要提供隨機源,而是使用沒有一個的構造函數重載。
  • 如果確實需要使用分布生成隨機數,則僅在出於某種原因不想使用默認隨機源時才提供隨機源。 如果默認值沒問題(本質上是 System.Random 的安全包裝器),請使用沒有一個的構造函數重載
  • 將 System.Random 實例傳遞給 Math.NET Numerics 時要小心。 考慮使用 SystemRandomSource 而不是線程安全的。

也可以看看:

暫無
暫無

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

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