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

Поток случайных чисел в виде a RandStream объект.

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

Советы

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

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

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Смотрите также

| | | |

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