Разработать функцию, которая генерирует все сочетания k элементов из n без повторений.

Генерация всех сочетаний

Функция generate_combinations принимает два аргумента: n (общее количество элементов) и k (количество элементов в каждом сочетании), и генерирует все возможные сочетания из n по k без повторений.

def generate_combinations(n, k):
    result = []
    def generate(current_combination, start):
        if len(current_combination) == k:
            result.append(current_combination[:])
            return
        for i in range(start, n):
            current_combination.append(i)
            generate(current_combination, i + 1)
            current_combination.pop()

    generate([], 0)
    return result

# Пример использования:
combinations = generate_combinations(5, 3)
for comb in combinations:
    print(comb) # Выводит список сочетаний

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

Категория: Практические упражнения Python | Добавил: Admin (03.05.2024)
Просмотров: 19 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: