関連情報
ホーム > 製品 > NAG数値計算ライブラリ > C#向けNAGライブラリ > サンプルソースコード集 > 一般離散分布から整数疑似乱数ベクトルを生成

C#による 一般離散分布から整数疑似乱数ベクトルを生成

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

Keyword: 一般離散分布, 整数疑似乱数ベクトル

概要

本サンプルは一般離散分布から整数疑似乱数ベクトルの生成を行うC#によるサンプルプログラムです。 本サンプルは確率密度関数が以下で表される一般離散分布から20個の整数疑似乱数を生成し出力します。

一般離散分布のデータ 

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

出力結果

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

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


     0
    -2
     1
     1
    -2
     0
     0
     1
     0
     1
    -3
    -1
     0
    -3
     0
    -1
    -1
     5
     2
     0


  • 4〜23行目に生成された疑似乱数が出力されています。

ソースコード

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

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


このソースコードをダウンロード
//      g05td Example Program Text
//      C# version, NAG Copyright 2008
using System;
using NagLibrary;
using System.IO;
namespace NagDotNetExamples
{
  public class G05TDE
  {
    static void Main(String[] args)
    {
      StartExample();
    }
    public static void StartExample()
    {
      try
      {
        const int np=11;
        const int mseed=1;
        const int n=20;
        int genid,   i,   ip1,   itype,   subid; 
        double[] p = new double[np] {0.010e0, 0.020e0, 0.040e0, 0.080e0, 0.20e0, 0.30e0, 
        0.20e0, 0.080e0, 0.040e0, 0.020e0, 0.010e0};
        double[] r = new double[10+(int)Math.Ceiling(1.4*np)];
        int[] seed = new int[mseed];
        int[] x = new int[n];
        int ifail;
        Console.WriteLine("g05td Example Program Results");
        Console.WriteLine("");Console.WriteLine("");
        //      Set the lowest value for the distribution
        ip1 =  -5;
        //      P is a PDF
        itype = 1;
        //      Initialise the seed
        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
        //      Choose mode = 2
        G05.g05td(2, n, p, np, ip1, itype,r,  g05State, x, out ifail);
        if (ifail != 0)
        {
          Console.WriteLine("** g05td failed with ifail = {0,5}", ifail);
          goto L20;
        }
        //      Display the variates
        for (i = 1 ; i <= n ; i++)
        {
          Console.WriteLine(" {0,5}", x[i - 1]);
        }
        Console.WriteLine("");
        // 
        L20: ;
        // 
      }
      catch (Exception e)
      {
        Console.WriteLine(e.Message);
        Console.WriteLine( "Exception Raised");
      }
    }
  }
}


Results matter. Trust NAG.

Privacy Policy | Trademarks