C#による 指数分布から疑似乱数ベクトルを生成

C#によるサンプルソースコード : 使用関数名:g05sf

Keyword: 指数分布, 疑似乱数ベクトル

概要

本サンプルは指数分布から疑似乱数ベクトルの生成を行うC#によるサンプルプログラムです。 本サンプルは以下に示される確率密度関数をもつ、平均(a)1.0の指数分布から5個の疑似乱数を生成し出力します。

指数分布のデータ 

※本サンプルはnAG Library for .NETに含まれる関数 g05sf() のExampleコードです。本サンプル及び関数の詳細情報は g05sf のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで

出力結果

(本関数の詳細はg05sf のマニュアルページを参照)
1
2
3
4
5
6
7
8

この出力例をダウンロード
g05sf Example Program Results

 0.4520 
 2.2398 
 0.2930 
 0.2253 
 2.2577 


  • 3~7行目に生成された疑似乱数が出力されています。

ソースコード

(本関数の詳細はg05sf のマニュアルページを参照)

※本サンプルソースコードは .NET環境用の科学技術・統計計算ライブラリである「nAG Library for .NET」の関数を呼び出します。
サンプルのコンパイル及び実行方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

このソースコードをダウンロード
//      g05sf Example Program Text
//      C# version, nAG Copyright 2008
using System;
using NagLibrary;
using System.IO;
namespace NagDotNetExamples
{
  public class G05SFE
  {
    static void Main(String[] args)
    {
      StartExample();
    }
    public static void StartExample()
    {
      try
      {
        const int mseed=1;
        const int n=5;
        double a=0.0;
        int genid,   i, subid; 
        double[] x = new double[n];
        int[] seed = new int[mseed];
        int ifail;
        Console.WriteLine("g05sf Example Program Results");
        Console.WriteLine("");
        //      Set the distribution parameter A
        a = 1.00e0;
        //      Initialise the seed to a repeatable sequence
        seed[0] = 1762543;
        //      genid and subid identify the base generator.
        genid = 1;
        subid = 1;
        //      Initialise the generator to a repeatable sequence
        G05.G05State g05State = new G05.G05State(genid, subid, seed, out ifail);
        if (ifail != 0)
        {
          Console.WriteLine("** Generator initialisation failed with ifail = {0,5}", ifail);
          goto L20;
        }
        //      Generate the variates
        G05.g05sf(n, a, g05State, x, out ifail);
        if (ifail != 0)
        {
          Console.WriteLine("** g05sf failed with ifail = {0,5}", ifail);
          goto L20;
        }
        //      Display the variates
        for (i = 1 ; i <= n ; i++)
        {
          Console.WriteLine(" {0:0.0000} ", x[i - 1]);
        }
        Console.WriteLine("");
        // 
        L20: ;
        // 
      }
      catch (Exception e)
      {
        Console.WriteLine(e.Message);
        Console.WriteLine( "Exception Raised");
      }
    }
  }
}


関連情報
© 日本ニューメリカルアルゴリズムズグループ株式会社 2024
Privacy Policy  /  Trademarks