Количество способов составить 2 ожерелья из N бусин, содержащих N/2 бусин в каждой

Опубликовано: 22 Сентября, 2022

Для данного положительного четного целого числа N , обозначающего количество различных бусин, задача состоит в том, чтобы найти количество способов сделать 2 ожерелья, содержащих ровно N/2 бусин.

Примеры:

Input: N = 2
Output: 1
Explanation: 
The only possible way to make two necklaces is that {1 | 2}.

Input: N = 4
Output: 3
Explanation: 
The possible ways to make two necklaces are {(1, 2) | (3, 4)}, {(1, 3) | (2, 4)}, and {(1, 4) | (2, 3)}.

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

  • Определите функцию, скажем, factorial для вычисления факториала числа, выполнив следующие шаги:
    • Базовый случай: если n = 0 , верните 1 .
    • Если n != 0 , то рекурсивно вызовите функцию и верните n * factorial(n-1) .
  • Инициализируйте переменную, скажем , как C(N, N/2), то есть количество способов выбрать N/2 бусин из N бусин.
  • Поскольку ожерелье круглое, количество способов перестановки N/2 бусин является факториальным (N/2-1), поэтому умножьте значение ans на факториал (N/2-1) * факториал (N/2-1) . так как есть два ожерелья.
  • Теперь разделите ответы на 2. Из-за симметричного распределения. Например, для N=2 распределение {1 | 2} и {2 | 1} считаются одинаковыми.
  • Наконец, после выполнения вышеуказанных шагов выведите значение ans в качестве ответа.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(N)
Вспомогательное пространство: O(1)