New Version 8.1! |
Supports .NET 6.0.
Try it for free with our fully functional
60-day trial version.
|
QuickStart Samples
Random Number Generators QuickStart Sample (IronPython)
Illustrates how to use specialized random number generator classes in the Extreme.Statistics.Random namespace in IronPython.
C# code
Visual Basic code
F# code
Back to QuickStart Samples
import numerics
from System import Array
from Extreme.Statistics.Random import *
from Extreme.Mathematics.LinearAlgebra import *
#/ Illustrates the use of the classes that implement
#/ pseudo-random number generators.
# This QuickStart Sample gives an overview of the pseudo-random
# number generators that provide an alternative for the
# System.Random class..
#
# ExtendedRandom class
#
# The ExtendedRandom class simply extends the functionality
# of the System.Random class:
extended = ExtendedRandom()
intValues = Array.CreateInstance(int, 100)
doubleValues = Array.CreateInstance(float, 100)
# The fill method fills an array of integers with random numbers
extended.Fill(intValues)
print "integer(99) =", intValues[99]
# Or, it can generate uniform real values:
extended.Fill(doubleValues)
print "double(99) =", doubleValues[99]
# All random number generators can also produce variates
# from any user-specified probability distribution.
# The NonUniformRandomNumbers sample illustrates
# how to do this.
#
# RANLUX Generators
#
# The RANLUX generators are available with three different
# 'luxury levels.' Each level produces random numbers of
# increasing quality at a performance cost.
#
# There are four constructors. The first constructor uses the
# default seed and the default (lowest) luxury level:
ranLux1 = RanLux()
# We can specify a seed value as well:
ranLux2 = RanLux(99)
# We can specify the luxury level in the constructor:
ranLux3 = RanLux(RanLuxLuxuryLevel.Better)
# Finally, we can specify both a seed and the luxury level:
ranLux4 = RanLux(99, RanLuxLuxuryLevel.Best)
# All methods of System.Random and ExtendedRandom are available:
ranLux1.Fill(intValues)
ranLux2.Fill(doubleValues)
print "Integer from RanLux(Best):", ranLux3.Next(100)
#
# Generalized Feedback Shift Register Generator
#
# This generator is implemented by the GfsrGenerator class.
# It has three constructors. A default constructor that uses
# a default seed value:
gfsr1 = GfsrGenerator()
# A constructor that takes a single integer seed:
gfsr2 = GfsrGenerator(99)
# And a constructor that takes an array of integers
# as its seed. The maximum size of this seed array
# is 2^14-1 = 16383.
gfsr3 = GfsrGenerator(Array[int]([ 99, 17, int.MaxValue ]))
# Once again, all standard methods are available.
print "Double from GFSR:", gfsr2.NextDouble()
#
# Mersenne Twister
#
# The Mersenne Twister is a variation on the GFSR generator and, # not surprisingly, also has three constructors:
mersenne1 = MersenneTwister()
mersenne2 = MersenneTwister(99)
mersenne3 = MersenneTwister(Array[int] ([ 99, 17, int.MaxValue ]))
Copyright © 2003-2021, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.