IMath.RndPermutation

Синтаксис Fore

RndPermutation(Value: Integer): Array;

Синтаксис Fore.NET

RndPermutation(Value: integer): System.Array;

Параметры

Value. Длина массива чисел.

Описание

Метод RndPermutation осуществляет псевдослучайную перестановку массива чисел.

Комментарии

Значение параметра Value должно быть больше «0».

Пример Fore

Для выполнения примера добавьте ссылку на системную сборку «MathFin».

Sub UserProc;
Var
    i, n, m: integer;
    mathrnd, mathrnd1: array 
Of integer;
Begin
    n := 8;
    m := 3
;
    mathrnd := math.RndSample(n, m);
    mathrnd1 := math.RndPermutation(n);
    
If mathrnd <> Null Then
        Debug.WriteLine(
"Выборка из массива");
        
For i := 0 To math.RndSample(n, m).Length - 1 Do
            Debug.WriteLine(mathrnd[i]);
        
End For;
        
Else Debug.WriteLine(math.ErrorMsg);
    
End If;
    Debug.WriteLine(
"Перестановка чисел в массиве");
    
If mathrnd1 <> Null Then
        
For i := 0 To math.RndPermutation(n).Length - 1 Do
            Debug.WriteLine(mathrnd1[i]);
        
End For;
        
Else Debug.WriteLine(math.ErrorMsg);
    
End If;
End Sub UserProc;

В результате выполнения примера будет построен массив длиной N чисел. Из полученного массива в произвольном порядке будут выбраны M чисел. В исходном массиве в произвольном порядке будет произведена перестановка чисел. Полученные массивы будут выведены в окно консоли.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.MathFin;

Public Shared Sub Main(Params: StartParams);
Var
    i, n, m: integer;
    mathrnd, mathrnd1: array;
    rnd: Prognoz.Platform.Interop.MathFin.MathClass;
Begin
    n := 8;
    m := 3;
    rnd := New Prognoz.Platform.Interop.MathFin.MathClass();
    mathrnd := rnd.RndSample(n, m);
    mathrnd1 := rnd.RndPermutation(n);
    If mathrnd <> Null Then
        System.Diagnostics.Debug.WriteLine("Выборка из массива");
        For i := 0 To rnd.RndSample(n, m).Length - 1 Do
            System.Diagnostics.Debug.WriteLine(mathrnd[i]);
        End For;
        Else System.Diagnostics.Debug.WriteLine(rnd.ErrorMsg);
    End If;
    System.Diagnostics.Debug.WriteLine("Перестановка чисел в массиве");
    If mathrnd1 <> Null Then
        For i := 0 To rnd.RndPermutation(n).Length - 1 Do
            System.Diagnostics.Debug.WriteLine(mathrnd1[i]);
        End For;
        Else System.Diagnostics.Debug.WriteLine(rnd.ErrorMsg);
    End If;
End Sub;

См. также:

IMath