БлогNot. Mathcad: выводим все сочетания без повторений для вектора значений

Mathcad: выводим все сочетания без повторений для вектора значений

В MathCAD уже есть 2 встроенные функции, позволяющие вычислить известные из комбинаторики число сочетаний без повторений (combinations) и число размещений (permutations).

Называются они, соответственно, combin и permut. У обеих функций по два параметра - общее количество элементов в множестве n и количество выбираемых элементов k, предполагается, что n ≥ k ≥ 0.

К сожалению, показать сами комбинации выбираемых значений Mathcad не может, это нужно программировать. Ниже изображена функция combins(v,k), которая возвращает матрицу столбцов, соответствующих найденным комбинациям. Первый параметр - вектор из n элементов, второй - количество выбираемых элементов k. На втором скрине приводятся тесты функции.

Функция "по-маткадовски", то есть, стандартным обработчиком error, реагирует на неправильные параметры, это демонстрируют тесты 2 и 3. Все элементы она по определению считает разными, так что тестировать на векторах с повторяющимися значениями нет смысла.

Последний тест - для маленькой функции time_combins с теми же параметрами, что у combins. Она просто измеряет время подбора комбинаций, в нашем случае, по 6 из 20. Заодно это пример того, как измерять в Mathcad время выполнения чего-то в секундах.

Функция для вывода всех комбинаций чисел в Mathcad
Функция для вывода всех комбинаций чисел в Mathcad
Тесты функции
Тесты функции
Функция для проверки времени работы другой функции в Mathcad
Функция для проверки времени работы другой функции в Mathcad

 Скачать или открыть файл Mathcad 15 .xmcd с этим содержимым (52 Кб)

Полагаю, для permut можно сделать такой же аналог.

10.11.2016, 00:24 [7808 просмотров]


теги: числа время mathcad тест

К этой статье пока нет комментариев, Ваш будет первым