Размещение – это упорядоченный выбор элементов из множества. В отличие от сочетаний, где порядок не важен, в размещениях порядок играет ключевую роль.
Обозначение: A(n,k)=n!/(n−k)!
где:
📌 Пример 1. Пароли из букв
Сколько существует 3-символьных паролей, составленных из букв A, B, C, D, если буквы не повторяются?
Решение:A(4,3)=4!(4−3)!=24
То есть 24 различных пароля можно составить.
📌 Пример 2. Расстановка людей
Сколькими способами можно рассадить 5 человек на 3 стула?
Решение:A(5,3)=5!(5−3)!=5!2!=60
Таким образом, существует 60 способов их рассадки.
Размещения полезны в машинном обучении и аналитике данных, например:
from math import factorial
from itertools import permutations
def arrangements(n, k):
return factorial(n) // factorial(n - k)
# Примеры
print("Размещения A(4,3):", arrangements(4, 3)) # 24
print("Размещения A(5,3):", arrangements(5, 3)) # 60
Допустим, у нас есть 5 категорий клиентов, и мы хотим исследовать, в каком порядке они чаще всего совершают покупки.
import pandas as pd
from itertools import permutations
# Данные о клиентах
customers = ['A', 'B', 'C', 'D', 'E']
# Генерация всех возможных последовательностей длины 3
arrangement_list = list(permutations(customers, 3))
# Создаем DataFrame для анализа
df = pd.DataFrame(arrangement_list, columns=['First', 'Second', 'Third'])
print(df.head(10)) # Вывод первых 10 вариантов
Что мы сделали?
Теперь можно анализировать, какие последовательности встречаются в реальных данных и выявлять тренды!