exponenta event banner

randperm

Случайная перестановка целых чисел

Описание

пример

p = randperm(n) возвращает вектор строки, содержащий случайную перестановку целых чисел от 1 до n без повторяющихся элементов.

пример

p = randperm(n,k) возвращает вектор строки, содержащий k уникальные целые числа, выбранные случайным образом от 1 до n.

p = randperm(s,___) генерирует случайную перестановку целых чисел из потока случайных чисел s вместо глобального потока по умолчанию. Чтобы создать поток, используйте RandStream. Определить s за которым следует любая из комбинаций аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Создайте случайную перестановку целых чисел от 1 до 6. Вход в randperm указывает наибольшее целое число в интервале выборки (наименьшее целое число в интервале равно 1).

r = randperm(6)
r = 1×6

     6     3     5     1     2     4

Создайте случайную перестановку четырех уникальных целых чисел (без повторяющихся элементов), выбранных случайным образом из целых чисел от 1 до 8.

r1 = randperm(8,4)
r1 = 1×4

     6     4     7     3

Создайте еще одну случайную перестановку четырех уникальных целых чисел.

r2 = randperm(8,4)
r2 = 1×4

     8     7     5     4

Сохраните текущее состояние генератора случайных чисел и создайте случайную перестановку целых чисел от 1 до 8.

s = rng;
r = randperm(8)
r = 1×8

     6     3     7     8     5     1     2     4

Восстановление состояния генератора случайных чисел в s, а затем создать новую случайную перестановку целых чисел от 1 до 8. Перестановка такая же, как и раньше.

rng(s)
r1 = randperm(8)
r1 = 1×8

     6     3     7     8     5     1     2     4

Вы можете использовать rng для задания настроек генератора случайных чисел.

Входные аргументы

свернуть все

Число целых чисел в интервале выборки, указанное как положительное целое число. randperm преобразует целочисленные значения из 1 в n включительно.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Число выбранных целых чисел, указанное как положительное целое число. k также должно быть меньше или равно n.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Поток случайных чисел, указанный как RandStream объект.

Пример: s = RandStream('dsfmt19937'); randperm(s,10)

Совет

  • Последовательность номеров, производимых randperm определяется внутренними настройками генератора однотипных псевдослучайных чисел, лежащего в основе rand, randi, randn, и randperm. Для управления генератором общих случайных чисел используйте rng функция.

  • Массивы, возвращенные randperm содержат перестановку целых чисел без повторения целых значений. Такое поведение иногда называют выборкой без замены. Если требуются повторяющиеся значения, используйте randi функция.

  • randperm(n) и randperm(n,n) оба генерируют перестановки целых чисел от 1 до n, но они могут давать различные случайные порядки в перестановках. Для больших n, randperm(n,n) быстрее, чем randperm(n).

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| | | |

Представлен до R2006a