Keyword: 指数分布, 疑似乱数ベクトル
概要
本サンプルは指数分布から疑似乱数ベクトルの生成を行うC#によるサンプルプログラムです。 本サンプルは以下に示される確率密度関数をもつ、平均(a)1.0の指数分布から5個の疑似乱数を生成し出力します。
※本サンプルはnAG Library for .NETに含まれる関数 g05sf() のExampleコードです。本サンプル及び関数の詳細情報は g05sf のマニュアルページをご参照ください。
ご相談やお問い合わせはこちらまで
出力結果
(本関数の詳細はg05sf のマニュアルページを参照)- 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"); } } } }