2016-05-18 29 views
0

指数分布で乱数を生成しようとしています。私はMath.NET NuGetパッケージを見つけました。これは素晴らしいですが、私はこれらの種類のデータのベクトルを生成する方法を理解できません。Math.Net指数分布乱数のベクトルを生成する方法

私は参照を含んでおり、この(公式サイトに触発された)のようなものを試してみました - 私は、制服は、指数値を生成しないことを知っている:

Generate.Uniform(100); 

私が手しかし:「Isが存在しない生成。現在のコンテキスト「

は、私も試してみました:ここ

Random rnd= new Random(); 
double[] samples; 
double lambda = 0.1; 
Exponential.Samples(rnd, samples,lambda); 

私が手に 『無効な表現用語『)』』と」;期待される」最後の行にします。

+0

Math.Netを使用せずに生成することができます。https://jamesmccaffrey.wordpress.com/2013/07/17/generating-exponentially-distributed-data-in-a-given-range-min-to-max/ –

+0

だから、基本的に、あなたはコンパイルエラーが出る? –

答えて

0

関数Samplesは、配列がすでに割り当てられていることを期待しているため、繰り返し使用することができます。それは完全な配列を埋めるでしょう。あなたが得たエラーコードに存在するMath.NETニューメリックスとは無関係の(とないC#の構文エラーです

Vector<double> v = CreateVector.Random<double>(200, new Exponential(lambda, rnd)); 

:しかし、あなたはベクトルではなく、配列のために求めてきました

Random rnd = new Random(); 
double lambda = 0.1; 

double[] samples = new double[200]; 
Exponential.Samples(rnd, samples, lambda); 

あなたは実際にここに投稿しました)。 Generateの場合は、MathNet.Numerics名前空間を開く必要があります。

+0

ありがとうございました。もう1つの質問。生成される数値の範囲を設定する方法。 0と1の間のrxample? – user2179427

+0

一様分布の場合: 'ContinuousUniform.Samples(rnd、samples、0.0、1.0);または指数分布を意味しますが、0.0-1.0にフィルタリングされていますか? –

+0

はい、私は0.0〜1.0の指数分布を意味します。 – user2179427

関連する問題