Перестановка в математике определяется как количество расположения ее члена в наборе. Это количество возможных аранжировок в общем количестве элементов в наборе, « при выборе количества элементов, «r» каждый раз.

Комбинация в математике определяется как количество расстановок в наборе без порядка выбора. Это очень похоже на перестановки, с той лишь разницей, что не учитывается порядок выбора.

Общая формула перестановки

Общая формула сочетания:

Вот несколько методов, которые можно использовать для решения обоих задач с помощью Python.

  1. Сырая математика
  2. Факториал
  3. Приближение Стирлинга
  4. Использование списков
  5. Сырая математика

Этот метод является прямым, когда мы решаем уравнение, разделяя уравнение на числитель и знаменатель, используя циклы for. Однако этот метод является линейным, что делает его вычислительно затратным при работе с большими числами « .

2. Факториал

Этот метод аналогичен предыдущему, и единственное отличие состоит в использовании функции факториала математической библиотеки.

3. Приближение Стирлинга

Этот метод, как следует из названия, использует приближение Стирлинга, приближение факториала. Формула этого приближения:

Полезно вычислять большее число «n» и меньше вычислительных затрат по сравнению с предыдущими методами. Недостаток этого метода в основном связан с тем, что он является приближенным, а выходные данные содержат десятичные дроби.

4. Использование списков

Перестановка и комбинация включают умножение ряда чисел. Использование списка и фильтрация элементов путем сравнения числителя знаменателя общей формулы. Вычислительные затраты этого метода находятся между аппроксимацией и чистой математикой/факториалом, поскольку он удаляет некоторые элементы перед умножением.

Реализацию этих методов можно найти на https://github.com/ChuinHongYap/math-python.

Я Чуин Хонг Яп, кандидат компьютерных наук и учусь всю жизнь. Вы можете найти меня в Твиттере ChuinHongYap.

Если вам понравилась эта статья, пожалуйста, не стесняйтесь рекомендовать и поделиться ею! Спасибо за чтение.