RndPermutation(Value: Integer): Array;
RndPermutation(Value: integer): System.Array;
Value. Длина массива чисел.
Метод RndPermutation осуществляет псевдослучайную перестановку массива чисел.
Значение параметра Value должно быть больше «0».
Для выполнения примера добавьте ссылку на системную сборку «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.
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;
См. также: