IModelling.RandBetween

Syntax

RandBetween(Bottom: Variant; Top: Variant): Variant;

Parameters

Bottom. The least value that returns the RandBetween method.

Top. The greatest number that returns the method RandBetween.

Description

The RandBetween method returns a random float number between two specified numbers.

Fore Example

Executing the example requires that the repository contains a modeling container with the MS identifier. This container includes a model with the MODEL_D identifier that is calculated by method of determinate equation and containing more than one input variable.

Sub UserProc;

Var

Mb: IMetabase;

ModelSpace, ModelObj: IMetabaseObject;

Transf: IMsFormulaTransform;

Formula: IMsFormula;

Model: IMsModel;

Determ: IMsDeterministicTransform;

TransVar: IMsFormulaTransformVariable;

Slice: IMsFormulaTransformSlice;

TermInfo: IMsFormulaTermInfo;

Inp_1, Inp_2: String;

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;

Inp_1 := TermInfo.TermInnerText;

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

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

TermInfo := Transf.CreateTermInfo;

TermInfo.Slice := Slice;

TermInfo.Type := MsFormulaTermType.Pointwise;

Inp_2 := TermInfo.TermInnerText;

Expr := Determ.Expression;

Expr.References := "Ms";

Expr.AsString := "RandBetween(" + Inp_1 + ", " + Inp_2 + ")";

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 returns random numbers placed between appropriate points of the first and second input variables.

Example of Use in Expressions

Expression 1:

RandBetween(Min({Brazil|BCA}),Max({Brazil|BCA}))

Result: the random number from the range: minimum value of the Brazil|BCA factor - maximum value of the Brazil|BCA factor.

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:

RandBetween(Min(X1),0)

Result: the random number that is placed between minimum value of the X1 factor and zero.

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

See also:

IModelling | Time Series Database: Calculator, Absolute Value | Modeling Container: Editing Regressor/Formula