Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 20.09.2022
Сообщений: 92

Сочетание элементов

07.03.2023, 15:39. Показов 426. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить функцию, которая принимает на вход n и k элементов.
После чего бы функция спрашивала "Сочетание с повторением?" - ответ "да" или "нет"
После этого составить алгоритм решения задачи, без использования сторонних библиотек. Стандартные библиотеки разрешены
Вводятся любые строки, в список.
Функция должна выводить на экран ВСЕ возможные сочетания.
Функция должна возвращать количества сочетаний.

Например: Пусть задано множество {1, 2, 3, 4, 5} сделать сочетания на 3
(Сочетание без повторений)
123 124 125
134 135
145
234 235
245
345
Кол-во сочетаний: 10

Например: Пусть задано множество {1, 2, 3} сделать сочетаний на 2
(Сочетание с повторением)
11 12 13
22 23
33
Кол-во сочетаний: 6
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.03.2023, 15:39
Ответы с готовыми решениями:

Сочетание цикла и разветвления
У меня тут беда случилась... Вот мне дано натуральное число n, a1, ..., an... Нужно найти количество членов в этой последовательности,...

Сочетание цикла разветления Абрамов
Помогите решить на питоне

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

5
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.03.2023, 15:52
Python
1
2
3
4
5
6
7
8
from itertools import combinations
from math import comb
 
a = {1, 2, 3, 4, 5}
k = 3
for p in combinations(a, 3):
    print(*p, sep='')
print('Кол-во сочетаний:', comb(len(a), k))
2
0 / 0 / 0
Регистрация: 20.09.2022
Сообщений: 92
07.03.2023, 15:57  [ТС]
eaa, Без сторонних библиотек, как раз имелась и в виду не использовать itertools и тому подобное.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
07.03.2023, 16:03
это стандартные библиотеки.
Цитата Сообщение от Assasain26 Посмотреть сообщение
Стандартные библиотеки разрешены
0
0 / 0 / 0
Регистрация: 20.09.2022
Сообщений: 92
07.03.2023, 16:21  [ТС]
не использовать библиотеку itertools
0
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
07.03.2023, 20:42
Лучший ответ Сообщение было отмечено Assasain26 как решение

Решение


Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
def combinations_with_replacement(iterable, r):
    # combinations_with_replacement('ABC', 2) --> AA AB AC BB BC CC
    pool = tuple(iterable)
    n = len(pool)
    if not n and r:
        return
    indices = [0] * r
    yield tuple(pool[i] for i in indices)
    while True:
        for i in reversed(range(r)):
            if indices[i] != n - 1:
                break
        else:
            return
        indices[i:] = [indices[i] + 1] * (r - i)
        yield tuple(pool[i] for i in indices)
 
 
def combinations_without_replacement(iterable, r):
    # combinations('ABCD', 2) --> AB AC AD BC BD CD
    # combinations(range(4), 3) --> 012 013 023 123
    pool = tuple(iterable)
    n = len(pool)
    if r > n:
        return
    indices = list(range(r))
    yield tuple(pool[i] for i in indices)
    while True:
        for i in reversed(range(r)):
            if indices[i] != i + n - r:
                break
        else:
            return
        indices[i] += 1
        for j in range(i + 1, r):
            indices[j] = indices[j - 1] + 1
        yield tuple(pool[i] for i in indices)
 
 
a = {1, 2, 3, 4, 5}
k = 3
match input('С повторениями? ').lower():
    case 'да':
        combs = list(combinations_with_replacement(a, k))
    case _:
        combs = list(combinations_without_replacement(a, k))
 
for p in combs:
    print(*p, sep='')
print('Кол-во сочетаний:', len(combs))
Добавлено через 2 часа 5 минут
Assasain26,
чтобы не было сюрпризом, а то вдруг не понял.
Это то же самое, что и выше предложили, абсолютно.

https://docs.python.org/3/libr... mbinations
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.03.2023, 20:42
Помогаю со студенческими работами здесь

Сочетание множеств
Приветствую, нуждаюсь в помощи, связанной с комбинаторикой. Нужно доработать код и вывести сочетания без повторений. Пример: n = 6 -...

Удалить сочетание «%%» в начале строк
Напишите программу, которая проводит первичную обработку неких сложных и глючных логов. Нужно удалить сочетание «%%» в начале некоторых...

Сочетание строки с числом - ошибка
У меня есть код. С виду идентичный, но я получаю ошибку. Кто может сказать почему? Без ошибки: age = input("Введите Ваш...

Как реализовать сочетание клавиш?
Как сделать так, чтобы в моей программе на tkinter работали сочетания клавиш, вроде Ctrl+c и Ctrl+v?

Заменить сочетание ABC на сочетание EFG в слове которое вводит исполнитель
Ребят срочно надо!!!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru