4 элемента:
A
B
C
D
Возможны 6 уникальных пар:
AB
AC
AD
BC
BD
CD
Что делать, если у меня есть 100 стартовых элементов? Сколько уникальных пар есть? Есть ли формула, в которую я могу ее вставить?
4 элемента:
A
B
C
D
Возможны 6 уникальных пар:
AB
AC
AD
BC
BD
CD
Что делать, если у меня есть 100 стартовых элементов? Сколько уникальных пар есть? Есть ли формула, в которую я могу ее вставить?
То, что вы ищете, это n выбрать k. В основном:
Для каждой пары из 100 предметов у вас будет 4 950 комбинаций - при условии, что порядок не имеет значения (AB и BA считаются одной комбинацией), и вы не хотите повторять (AA не является допустимой парой).
Вот как вы можете самостоятельно подойти к этим проблемам:
Первая из пары может быть выбрана способами N (= 100). Вы не хотите снова выбирать этот элемент, поэтому вторую пару можно выбрать в N-1 (= 99). Всего вы можете выбрать 2 элемента из N в N (N-1) (= 100 * 99 = 9900) разными способами.
Но держись, таким образом, вы учитываете и разные порядки: оба и AB и BA подсчитываются. Поскольку каждая пара подсчитывается дважды, вам необходимо разделить N (N-1) на два (количество способов, которыми вы можете заказать список из двух элементов). Число подмножеств из двух, которое вы можете сделать с набором из N, равно N (N-1)/2 (= 9900/2 = 4950).
TL;DR; Формула n(n-1)/2
, где n
- количество элементов в наборе.
Чтобы найти количество уникальных пар в наборе, где пара подчиняется коммутативному свойству (AB = BA)
, вы можете вычислить summation 1 + 2 + ... + (n-1)
, где n
- количество элементов в наборе.
Мотивы следующие: скажем, у вас есть 4 предмета:
A
B
C
D
Количество элементов, которые могут быть соединены с A
, равно 3 или n-1
:
AB
AC
AD
Из этого следует, что число элементов, которое может быть сопряжено с B
, равно n-2
(поскольку B
уже спаривается с A
):
BC
BD
и т.д.
(n-1) + (n-2) + ... + (n-(n-1))
что совпадает с
1 + 2 + ... + (n-1)
или
n(n-1)/2
Я решал этот алгоритм и застревал с парной частью.
Это объяснение мне очень помогает https://betterexplained.com/articles/techniques-for-adding-the-numbers-1-to-100/
Итак, чтобы вычислить сумму рядов чисел:
n(n+1)/2
Но вам нужно рассчитать это
1 + 2 + ... + (n-1)
Итак, чтобы получить это, вы можете использовать
n(n+1)/2 - n
равное
n(n-1)/2