IModelling.Rand

Syntax

Rand: Variant;

Description

The Rand method returns a random uniformly distributed number, greater or equal to 0 and less than 1.

Fore Example

Executing the example requires that the repository contains a modeling container with the MS identifier. A model with the MODEL_D identifier calculated by the method of determinate equation and containing at least one input variable must be available in this container.

Sub UserProc;

Var

Mb: IMetabase;

ModelSpace, ModelObj: IMetabaseObject;

Transf: IMsFormulaTransform;

Formula: IMsFormula;

Model: IMsModel;

Determ: IMsDeterministicTransform;

TransVar: IMsFormulaTransformVariable;

Slice: IMsFormulaTransformSlice;

TermInfo: IMsFormulaTermInfo;

Expr: IExpression;

Begin

Mb := MetabaseClass.Active;

ModelSpace := Mb.ItemById("MS").Bind;

ModelObj := Mb.ItemByIdNamespace("MODEL_D", ModelSpace.Key).Edit;

Model := ModelObj As IMsModel;

Transf := Model.Transform;

Formula := Transf.FormulaItem(0);

Determ := Formula.Method As IMsDeterministicTransform;

TransVar := Transf.Inputs.Item(0);

Slice := TransVar.Slices.Item(0);

TermInfo := Transf.CreateTermInfo;

TermInfo.Slice := Slice;

TermInfo.Type := MsFormulaTermType.Pointwise;

Expr := Determ.Expression;

Expr.References := "Ms";

Expr.AsString := TermInfo.TermInnerText + " * Rand";

If Expr.Valid

Then ModelObj.Save;

Else Debug.WriteLine(The model is not saved: error in the formula);

End If;

End Sub UserProc;

After executing the example the model multiplies points of the first input variable by the random number.

Example of Use in Expressions

Expression 1:

Rand*{Brazil|BCA}

Result: each Brazil|BCA factor observation is multiplied by random number from the range [0; 1).

Use: it can be used in formulas of calculated series of time series database and model formulas of modeling container that is a child of the time series database.

Expression 2:

Rand+X1

Result: each X1 factor point is increased by random number from the range [0; 1).

Use: it can be used in model formulas of modeling container.

See also:

IModelling