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

Напишите программу, которая генерирует сочетания

05.11.2020, 18:57. Показов 5512. Ответов 14

Студворк — интернет-сервис помощи студентам
Всем привет, нужна помощь по задаче
Формат входных данных

Программа получает на вход n - количество элементов в списке, на отдельной строке n чисел через пробел, и на третьей строке k - размер требуемых сочетаний. n, k целые числа в пределах от 1 до 20. Числа списка целые в пределах от 0 до 1000.

Формат выходных данных

Программа выводит на отдельных строках сочетания элементов списка через пробел. Сочетания отсортированы в порядке возрастания и выводятся также в порядке возрастания (создайте список списков-сочетаний, отсортируйте каждый список-сочетание, отсортируйте список списков и выведите).

Часть кода уже написал, не знаю как оформить вывод, подскажите пожалуйста)
Вот мой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
n = int(input())
numbers = []
numbers2 = []
i = 0
numbers = list(map(int, input().split()))
k = int(input())
def C(n, k):
    if k == 0:
        return 1
    elif k > n:
        return 0
    else:
        return C(n - 1, k) + C(n - 1, k - 1)
for i in range (C(n, k)):
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.11.2020, 18:57
Ответы с готовыми решениями:

Написать программу, которая генерирует результаты ставаок
Задание: в первой вспомогательной функции описывает соревнования для ставок. Во второй просит выбрать две команды, на которые вы делаете...

Написать программу, которая генерирует случайное количество файлов
Написать программу, которая генерирует случайное количество файлов от 2 до 10 (создайте отдельную папку, и в нее записываете фалы, создать...

Создать программу которая генерирует пароли ,и проверяет их сложность
Python 3.Надо создать программу которая генерирует пароли первая степень генерации-цифры,вторая-цифры и буквы третья-цифры,букву спец...

14
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.11.2020, 19:07
Rumynoff, itertools
Python
1
2
3
4
5
6
7
8
9
import itertools
 
def C(num, k):
    return list(itertools.combinations(num, k))
    
n = int(input())
num = list(map(int,input().split()))
k = int(input())
print(C(num,k))
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 45
05.11.2020, 19:16  [ТС]
А как можно это отсортировать?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.11.2020, 19:25
Rumynoff,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import itertools
 
def C(num, k):
    return list(itertools.combinations(num, k))
    
n = int(input())
num = list(map(int,input().split()))
num.sort()
k = int(input())
res = list(set(C(num,k)))
res.sort()
lst = []
for i in res :
    tmp = []
    for j in i :
        tmp.append(j)
    lst.append(tmp)
print(lst)
Добавлено через 6 минут
Rumynoff,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import itertools
 
def C(num, k):
    return list(set(itertools.combinations(num, k)))
    
n = int(input())
num = list(map(int,input().split()))
num.sort()
k = int(input())
res = C(num,k)
res.sort()
lst = []
for i in res :
    lst.append(list(i))
print(lst)
Лучше так
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 45
05.11.2020, 20:23  [ТС]
Есть проблема, программа при получении одинаковых чисел, к примеру, ввод: 7 1 5 5 5 5, перебирает не все пятерки, как это можно решить?
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.11.2020, 20:26
Rumynoff, а число сочетаний для них сколько?
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 45
05.11.2020, 20:28  [ТС]
Входные данные:
10
7 1 2 19 606 4 5 5 5 5
7

Правильный вывод:
1 2 4 5 5 5 5
1 2 4 5 5 5 7
1 2 4 5 5 5 7
1 2 4 5 5 5 7
1 2 4 5 5 5 7
1 2 4 5 5 5 19
1 2 4 5 5 5 19
1 2 4 5 5 5 19
1 2 4 5 5 5 19
1 2 4 5 5 5 606
1 2 4 5 5 5 606
1 2 4 5 5 5 606
1 2 4 5 5 5 606
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 7 19 606
1 2 4 5 7 19 606
1 2 4 5 7 19 606
1 2 4 5 7 19 606
1 2 5 5 5 5 7
1 2 5 5 5 5 19
1 2 5 5 5 5 606
1 2 5 5 5 7 19
1 2 5 5 5 7 19
1 2 5 5 5 7 19
1 2 5 5 5 7 19
1 2 5 5 5 7 606
1 2 5 5 5 7 606
1 2 5 5 5 7 606
1 2 5 5 5 7 606
1 2 5 5 5 19 606
1 2 5 5 5 19 606
1 2 5 5 5 19 606
1 2 5 5 5 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 4 5 5 5 5 7
1 4 5 5 5 5 19
1 4 5 5 5 5 606
1 4 5 5 5 7 19
1 4 5 5 5 7 19
1 4 5 5 5 7 19
1 4 5 5 5 7 19
1 4 5 5 5 7 606
1 4 5 5 5 7 606
1 4 5 5 5 7 606
1 4 5 5 5 7 606
1 4 5 5 5 19 606
1 4 5 5 5 19 606
1 4 5 5 5 19 606
1 4 5 5 5 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 5 5 5 5 7 19
1 5 5 5 5 7 606
1 5 5 5 5 19 606
1 5 5 5 7 19 606
1 5 5 5 7 19 606
1 5 5 5 7 19 606
1 5 5 5 7 19 606
2 4 5 5 5 5 7
2 4 5 5 5 5 19
2 4 5 5 5 5 606
2 4 5 5 5 7 19
2 4 5 5 5 7 19
2 4 5 5 5 7 19
2 4 5 5 5 7 19
2 4 5 5 5 7 606
2 4 5 5 5 7 606
2 4 5 5 5 7 606
2 4 5 5 5 7 606
2 4 5 5 5 19 606
2 4 5 5 5 19 606
2 4 5 5 5 19 606
2 4 5 5 5 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 5 5 5 5 7 19
2 5 5 5 5 7 606
2 5 5 5 5 19 606
2 5 5 5 7 19 606
2 5 5 5 7 19 606
2 5 5 5 7 19 606
2 5 5 5 7 19 606
4 5 5 5 5 7 19
4 5 5 5 5 7 606
4 5 5 5 5 19 606
4 5 5 5 7 19 606
4 5 5 5 7 19 606
4 5 5 5 7 19 606
4 5 5 5 7 19 606
5 5 5 5 7 19 606



Вывод программы:
1 2 4 5 5 5 5
1 2 4 5 5 5 7
1 2 4 5 5 5 19
1 2 4 5 5 5 606
1 2 4 5 5 7 19
1 2 4 5 5 7 606
1 2 4 5 5 19 606
1 2 4 5 7 19 606
1 2 5 5 5 5 7
1 2 5 5 5 5 19
1 2 5 5 5 5 606
1 2 5 5 5 7 19
1 2 5 5 5 7 606
1 2 5 5 5 19 606
1 2 5 5 7 19 606
1 4 5 5 5 5 7
1 4 5 5 5 5 19
1 4 5 5 5 5 606
1 4 5 5 5 7 19
1 4 5 5 5 7 606
1 4 5 5 5 19 606
1 4 5 5 7 19 606
1 5 5 5 5 7 19
1 5 5 5 5 7 606
1 5 5 5 5 19 606
1 5 5 5 7 19 606
2 4 5 5 5 5 7
2 4 5 5 5 5 19
2 4 5 5 5 5 606
2 4 5 5 5 7 19
2 4 5 5 5 7 606
2 4 5 5 5 19 606
2 4 5 5 7 19 606
2 5 5 5 5 7 19
2 5 5 5 5 7 606
2 5 5 5 5 19 606
2 5 5 5 7 19 606
4 5 5 5 5 7 19
4 5 5 5 5 7 606
4 5 5 5 5 19 606
4 5 5 5 7 19 606
5 5 5 5 7 19 606
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.11.2020, 20:28
Rumynoff, и одинаковые тоже нужны?
[5,5]
[5,5]
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 45
05.11.2020, 20:30  [ТС]
Да, нужно чтобы сортировка была по всем пятеркам
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.11.2020, 20:38
Rumynoff,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import itertools
 
def C(num, k):
    return list(itertools.combinations(num, k))
    
n = int(input())
num = list(map(int,input().split()))
num.sort()
k = int(input())
res = C(num,k)
lst = []
for i in res :
    i = list(i)
    i.sort()
    if i not in lst :
        lst.append(list(i))
lst.sort()
for i in lst:
    print(*i)
Добавлено через 3 минуты
В принципе num.sort() - лишнее
0
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 45
05.11.2020, 20:39  [ТС]
Теперь вывод такой
Кликните здесь для просмотра всего текста
1 2 4 5 5 5 5
1 2 4 5 5 5 7
1 2 4 5 5 5 19
1 2 4 5 5 5 606
1 2 4 5 5 7 19
1 2 4 5 5 7 606
1 2 4 5 5 19 606
1 2 4 5 7 19 606
1 2 5 5 5 5 7
1 2 5 5 5 5 19
1 2 5 5 5 5 606
1 2 5 5 5 7 19
1 2 5 5 5 7 606
1 2 5 5 5 19 606
1 2 5 5 7 19 606
1 4 5 5 5 5 7
1 4 5 5 5 5 19
1 4 5 5 5 5 606
1 4 5 5 5 7 19
1 4 5 5 5 7 606
1 4 5 5 5 19 606
1 4 5 5 7 19 606
1 5 5 5 5 7 19
1 5 5 5 5 7 606
1 5 5 5 5 19 606
1 5 5 5 7 19 606
2 4 5 5 5 5 7
2 4 5 5 5 5 19
2 4 5 5 5 5 606
2 4 5 5 5 7 19
2 4 5 5 5 7 606
2 4 5 5 5 19 606
2 4 5 5 7 19 606
2 5 5 5 5 7 19
2 5 5 5 5 7 606
2 5 5 5 5 19 606
2 5 5 5 7 19 606
4 5 5 5 5 7 19
4 5 5 5 5 7 606
4 5 5 5 5 19 606
4 5 5 5 7 19 606
5 5 5 5 7 19 606


А нужно:
Кликните здесь для просмотра всего текста
1 2 4 5 5 5 5
1 2 4 5 5 5 7
1 2 4 5 5 5 7
1 2 4 5 5 5 7
1 2 4 5 5 5 7
1 2 4 5 5 5 19
1 2 4 5 5 5 19
1 2 4 5 5 5 19
1 2 4 5 5 5 19
1 2 4 5 5 5 606
1 2 4 5 5 5 606
1 2 4 5 5 5 606
1 2 4 5 5 5 606
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 19
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 7 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 5 19 606
1 2 4 5 7 19 606
1 2 4 5 7 19 606
1 2 4 5 7 19 606
1 2 4 5 7 19 606
1 2 5 5 5 5 7
1 2 5 5 5 5 19
1 2 5 5 5 5 606
1 2 5 5 5 7 19
1 2 5 5 5 7 19
1 2 5 5 5 7 19
1 2 5 5 5 7 19
1 2 5 5 5 7 606
1 2 5 5 5 7 606
1 2 5 5 5 7 606
1 2 5 5 5 7 606
1 2 5 5 5 19 606
1 2 5 5 5 19 606
1 2 5 5 5 19 606
1 2 5 5 5 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 2 5 5 7 19 606
1 4 5 5 5 5 7
1 4 5 5 5 5 19
1 4 5 5 5 5 606
1 4 5 5 5 7 19
1 4 5 5 5 7 19
1 4 5 5 5 7 19
1 4 5 5 5 7 19
1 4 5 5 5 7 606
1 4 5 5 5 7 606
1 4 5 5 5 7 606
1 4 5 5 5 7 606
1 4 5 5 5 19 606
1 4 5 5 5 19 606
1 4 5 5 5 19 606
1 4 5 5 5 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 4 5 5 7 19 606
1 5 5 5 5 7 19
1 5 5 5 5 7 606
1 5 5 5 5 19 606
1 5 5 5 7 19 606
1 5 5 5 7 19 606
1 5 5 5 7 19 606
1 5 5 5 7 19 606
2 4 5 5 5 5 7
2 4 5 5 5 5 19
2 4 5 5 5 5 606
2 4 5 5 5 7 19
2 4 5 5 5 7 19
2 4 5 5 5 7 19
2 4 5 5 5 7 19
2 4 5 5 5 7 606
2 4 5 5 5 7 606
2 4 5 5 5 7 606
2 4 5 5 5 7 606
2 4 5 5 5 19 606
2 4 5 5 5 19 606
2 4 5 5 5 19 606
2 4 5 5 5 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 4 5 5 7 19 606
2 5 5 5 5 7 19
2 5 5 5 5 7 606
2 5 5 5 5 19 606
2 5 5 5 7 19 606
2 5 5 5 7 19 606
2 5 5 5 7 19 606
2 5 5 5 7 19 606
4 5 5 5 5 7 19
4 5 5 5 5 7 606
4 5 5 5 5 19 606
4 5 5 5 7 19 606
4 5 5 5 7 19 606
4 5 5 5 7 19 606
4 5 5 5 7 19 606
5 5 5 5 7 19 606
1 2 4 5 5 5 5
1 2 4 5 5 5 7
1 2 4 5 5 5 19
1 2 4 5 5 5 606
1 2 4 5 5 7 19
1 2 4 5 5 7 606
1 2 4 5 5 19 606
1 2 4 5 7 19 606
1 2 5 5 5 5 7
1 2 5 5 5 5 19
1 2 5 5 5 5 606
1 2 5 5 5 7 19
1 2 5 5 5 7 606
1 2 5 5 5 19 606
1 2 5 5 7 19 606
1 4 5 5 5 5 7
1 4 5 5 5 5 19
1 4 5 5 5 5 606
1 4 5 5 5 7 19
1 4 5 5 5 7 606
1 4 5 5 5 19 606
1 4 5 5 7 19 606
1 5 5 5 5 7 19
1 5 5 5 5 7 606
1 5 5 5 5 19 606
1 5 5 5 7 19 606
2 4 5 5 5 5 7
2 4 5 5 5 5 19
2 4 5 5 5 5 606
2 4 5 5 5 7 19
2 4 5 5 5 7 606
2 4 5 5 5 19 606
2 4 5 5 7 19 606
2 5 5 5 5 7 19
2 5 5 5 5 7 606
2 5 5 5 5 19 606
2 5 5 5 7 19 606
4 5 5 5 5 7 19
4 5 5 5 5 7 606
4 5 5 5 5 19 606
4 5 5 5 7 19 606
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.11.2020, 20:44
Лучший ответ Сообщение было отмечено Rumynoff как решение

Решение

Rumynoff,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import itertools
 
def C(num, k):
    return list(itertools.combinations(num, k))
    
n = int(input())
num = list(map(int,input().split()))
k = int(input())
res = C(num,k)
lst = []
for i in res :
    i = list(i)
    i.sort()
    lst.append(list(i))    
lst.sort()
for i in lst:
    print(*i)
1
0 / 0 / 0
Регистрация: 30.06.2020
Сообщений: 45
05.11.2020, 20:47  [ТС]
Да, всё работает, огромное вам спасибо!
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
05.11.2020, 20:47
Rumynoff, ок
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.11.2020, 21:08
ничего не понятно, но очень интересно...
Python
1
2
3
4
5
6
from itertools import combinations
n = int(input())
*a, = map(int, input().split())
a.sort()
for c in combinations(a,int(input())):
    print(*c)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.11.2020, 21:08
Помогаю со студенческими работами здесь

Напишите программу, которая генерирует блок из 26 строк
Напишите программу, которая генерирует блок из 26 строк, частично показанный ниже. Использовать цикл, содержащий один или два оператора...

Напишите программу, которая генерирует рандомный список чисел одной строкой
Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними,...

Напишите программу, которая генерирует подмножества заданного множества
Здравствуйте, нужна помощь с решением задачи: Напишите программу, которая генерирует подмножества заданного множества. Формат...

Напишите программу, которая генерирует в лексикографическом порядке 4-буквенные слова
Напишите программу, которая генерирует в лексикографическом порядке 4-буквенные слова в наборе A = {a, b, c, d, e} слов, которые не...

Напишите программу которая генерирует 10 случайных чисел. Вычислить их среднее арифметическое
Напишите программу которая генерирует 10 случайных чисел в диапозоне от 1 до 20, выводит эти числа на экран и вычисляет их среднее...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru