using System; using CenterSpace.NMath.Core; namespace CenterSpace.NMath.Examples.CSharp { /// <summary> /// A .NET example in C# showing how to generate random numbers from a normal distribution, /// using the class RandGenNormal, and place them in a histogram. /// </summary> class NormalRNGExample { static void Main( string[] args ) { double mean = 70.0; double variance = 10.0; // Create a default generator. The default generator will generate // random numbers from a normal distribution with a specified mean // and variance. var normalRng = new RandGenNormal( mean, variance ); // Now construct a vector of random numbers using this generator. int numRandDeviates = 200; var randomVec = new DoubleVector( numRandDeviates, normalRng ); // Create a histogram with equal sized bins for the random numbers. int numBins = 20; var h = new Histogram( numBins, randomVec ); Console.WriteLine(); // Print out the histogram in a "stem leaf" format. Console.WriteLine( "{0} random deviates from a normal({1},{2}) distribution:", numRandDeviates, mean, variance ); Console.WriteLine( h.StemLeaf() ); // Change the mean and variance for generator and check the mean and // variance of the generated deviates. normalRng.Mean = -2.0; normalRng.Variance = 1.0; randomVec = new DoubleVector( 1000, normalRng ); double meanOfDeviates = NMathFunctions.Mean( randomVec ); Console.WriteLine( "Distribution mean = {0}, mean of deviates = {1}", normalRng.Mean, meanOfDeviates ); double varianceOfDeviates = NMathFunctions.Variance( randomVec ); Console.WriteLine( "Distribution variance = {0}, variance of deviates = {1}", normalRng.Variance, varianceOfDeviates ); // Replace the vectors contents with new random numbers randomVec.Transform( new Func<double>( normalRng.NextDouble ) ); Console.WriteLine(); Console.WriteLine( "Press Enter Key" ); Console.Read(); } }// class }// namespace← All NMath Code Examples