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

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

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

Примеры:

Input: N = 4
Output: 3
Explanation: The 3 sets consisting of 2 (= N/2) elements are:
             [1, 2], [3, 4]
             [1, 3], [2, 4]
             [1, 4], [2, 3]           

Input: N = 20
Output: 12164510040883200

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

nCr = n!/(n-r)!*r! 
 

Теперь приведенную выше формулу можно изменить для решения данной задачи:

  • Здесь необходимо выбрать N/2 элементов из N элементов, чтобы сформировать каждый набор. Следовательно, r = N/2 .
  • Следует отметить, что один и тот же элемент не может одновременно присутствовать в двух наборах. Итак, формула n C r надо разделить на 2.
  • Кроме того, элементы, присутствующие в каждом наборе, могут располагаться в (N/2-1)! способы. Поскольку наборов два, формула будет умножаться на этот коэффициент дважды.

Полученная модифицированная формула имеет вид:

Number of ways = ((N! / (N – r)!*r!) / 2) * (N / 2 – 1)!*(N / 2 – 1)! where r = N / 2

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

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