Перестановка в математике определяется как количество расположения ее члена в наборе. Это количество возможных аранжировок в общем количестве элементов в наборе, «n» при выборе количества элементов, «r» каждый раз.
Комбинация в математике определяется как количество расстановок в наборе без порядка выбора. Это очень похоже на перестановки, с той лишь разницей, что не учитывается порядок выбора.
Общая формула перестановки
Общая формула сочетания:
Вот несколько методов, которые можно использовать для решения обоих задач с помощью Python.
- Сырая математика
- Факториал
- Приближение Стирлинга
- Использование списков
- Сырая математика
Этот метод является прямым, когда мы решаем уравнение, разделяя уравнение на числитель и знаменатель, используя циклы for. Однако этот метод является линейным, что делает его вычислительно затратным при работе с большими числами «n» .
2. Факториал
Этот метод аналогичен предыдущему, и единственное отличие состоит в использовании функции факториала математической библиотеки.
3. Приближение Стирлинга
Этот метод, как следует из названия, использует приближение Стирлинга, приближение факториала. Формула этого приближения:
Полезно вычислять большее число «n» и меньше вычислительных затрат по сравнению с предыдущими методами. Недостаток этого метода в основном связан с тем, что он является приближенным, а выходные данные содержат десятичные дроби.
4. Использование списков
Перестановка и комбинация включают умножение ряда чисел. Использование списка и фильтрация элементов путем сравнения числителя знаменателя общей формулы. Вычислительные затраты этого метода находятся между аппроксимацией и чистой математикой/факториалом, поскольку он удаляет некоторые элементы перед умножением.
Реализацию этих методов можно найти на https://github.com/ChuinHongYap/math-python.
Я Чуин Хонг Яп, кандидат компьютерных наук и учусь всю жизнь. Вы можете найти меня в Твиттере ChuinHongYap.
Если вам понравилась эта статья, пожалуйста, не стесняйтесь рекомендовать и поделиться ею! Спасибо за чтение.