2 / 2 / 0
Регистрация: 24.06.2019
Сообщений: 20

Списки с перестановками чисел permutations

18.01.2021, 12:18. Показов 3061. Ответов 13

Студворк — интернет-сервис помощи студентам
Нужно сделать перестановки n-го количества нат. чисел в комбинациях списков a,b,c.
Примерно вот так:
1.С помощью permutations([1, 2, 3, 4, 5]) создаем всевозможные перестановки
2.Каждый полученный список разбиваем на три списка с перестановками ,например:
permutation[0:к примеру 2] = [(1, 2, 3, 4, 5), (1, 2, 3, 5, 4), (1, 2, 4, 3, 5)]
a = [1] b = [2] c = [3, 4, 5]
a = [1] b = [2] c = [3, 5, 4]
a = [1] b = [2] c = [4, 3, 5]
...(и так весь permutations)
a = [1] b = [2,3] c = [4, 5]
a = [1] b = [2,3] c = [5, 4]
a = [1] b = [2,4] c = [3, 4]
...(и так весь permutations)
Так нужно перебрать все перестановки a,b,c.
У меня есть вот такой код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from random import randint, sample
def fun() :
    n = int(input())
    mas = list(range(1,n+1))
    
    for i in range(n-2) :
        tmp1 = sample(mas, n)
        
        for j in range(n - i - 2) :
            tmp2 = tmp1.copy()
            a = [tmp2.pop(randint(0, n - i - 1)) for _ in range(i+1)]
            b = [tmp2.pop(randint(0, n - i - j - 2)) for _ in range(j + 1)]
            c = sample(tmp2, n - i - j - 2)
            
            print('a =', a, 'b =', b, 'c =', c)
            print()
fun()
Здесь генераторы подставляют рандомные значения списка mas. А нужно чтобы были перестановки чисел. Приложил скриншот как должны быть перестановки массивов(там перестановки из 6 нат.чисел) ,для каждой итерации нужно пройтись по permutations.

Подскажите как это сделать пожалуйста. Будут полезны любые идеи!
Изображения
 
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.01.2021, 12:18
Ответы с готовыми решениями:

Даны списки чисел, нужно вывести список всех возможных комбинаций чисел, составляющих эти списки
Даны списки чисел, нужно вывести список всех возможных комбинаций чисел, составляющих эти списки (элемент из списка 1, элемент из списка 2...

Сортировка чисел выбором и простейшими перестановками
Ребят, помогите плииз написать проги! 1. Найти элемент массива, имеющий наименьшее значение, переставить его с первым элементом, затем...

Васе недавно подарили перестановку из n чисел. Он очень любит играть с перестановками
Васе недавно подарили перестановку из n чисел. Он очень любит играть с перестановками. Играет он так: сначала перемешивает её, затем...

13
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
18.01.2021, 12:35

Не по теме:

robotrd, все в порядке?


Создать несколько списков с перестановками
/upd
Цитата Сообщение от robotrd Посмотреть сообщение
А нужно для автоматизации задачи.
Какая задача изначально стояла?

Не по теме:

То, что вы делаете - дичь полная. Ничего не понятно. Просто поток сознания. Берете перестановки, что-то с ними делаете, делите на списки. Зачем? Что вы в итоге хотите получить, перебрав 15! элементов (~10 ^ 12 перестановок)?

0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
18.01.2021, 12:44
robotrd, Т.е. для N=15 хочешь получить 236 689 060 608 000 различных вариантов???
0
2 / 2 / 0
Регистрация: 24.06.2019
Сообщений: 20
18.01.2021, 13:22  [ТС]
Добавлено через 1 минуту
Цитата Сообщение от Gdez Посмотреть сообщение
robotrd, Т.е. для N=15 хочешь получить 236 689 060 608 000 различных вариантов???
Да. Я потом буду производить действия с массивами, такие как сумма и среднее значение.
0
18.01.2021, 13:23

Не по теме:

Цитата Сообщение от robotrd Посмотреть сообщение
Я потом буду производить действия с массивами, такие как сумма и среднее значение.
Сколько лет?

0
2 / 2 / 0
Регистрация: 24.06.2019
Сообщений: 20
18.01.2021, 13:27  [ТС]
Цитата Сообщение от Arsegg Посмотреть сообщение

Не по теме:

robotrd, все в порядке?


Создать несколько списков с перестановками
/upd

Какая задача изначально стояла?

Не по теме:

То, что вы делаете - дичь полная. Ничего не понятно. Просто поток сознания. Берете перестановки, что-то с ними делаете, делите на списки. Зачем? Что вы в итоге хотите получить, перебрав 15! элементов (~10 ^ 12 перестановок)?

Та задача была решена поэтому выбрал лучшее решение. Здесь уже нужно немного другое.

Добавлено через 3 минуты
Цитата Сообщение от Arsegg Посмотреть сообщение

Не по теме:


Сколько лет?

Я буду выводить sum(a,b,c) в конце.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
18.01.2021, 13:30
Цитата Сообщение от robotrd Посмотреть сообщение
Сообщение от Gdez
robotrd, Т.е. для N=15 хочешь получить 236 689 060 608 000 различных вариантов???
Да. Я потом
а вы хоть знаете название этого числа? оно не впечатлило?
0
18.01.2021, 13:31

Не по теме:

Цитата Сообщение от robotrd Посмотреть сообщение
sum(a,b,c)
Суммировать списки? Зачем?

0
2 / 2 / 0
Регистрация: 24.06.2019
Сообщений: 20
18.01.2021, 13:32  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
а вы хоть знаете название этого числа? оно не впечатлило?
В данной теме я не упоминал что будет 15 чисел. Их будет 5
0
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
18.01.2021, 13:35

Не по теме:

Цитата Сообщение от robotrd Посмотреть сообщение
Их будет 5
А что не 100500?


/upd

Не по теме:

Полагаю, от ТСа не добиться нормальной постановки задачи. Засим тему покидаю.

0
2 / 2 / 0
Регистрация: 24.06.2019
Сообщений: 20
18.01.2021, 13:47  [ТС]
Если вам так интересна сама задача:

Задано непустое множество различных натуральных чисел. Его разбивают на три непустые натуральные наборы.
Далее то, что могу сделать сам > Ко всем числам первого набора дописывают цифру 8, ко всем чисел второго набора дописывают цифру 1, третий оставляют без изменений. Найдите все возможные отношения суммы полученных чисел к сумме первоначальных.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
18.01.2021, 13:53
Лучший ответ Сообщение было отмечено robotrd как решение

Решение

robotrd,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from itertools import permutations
from math import factorial
def fun() :
    n = 5 #int(input())
    k = factorial(n)
    mas = (xlist for xlist in
     permutations(list(range(1,n+1))))
    for _ in range(k) :
        tmp1 = next(mas)
        for i in range(n-2) :
            for j in range(n - i - 2) :
                tmp2 = list(tmp1)
                a = [tmp2.pop(0) for _ in range(i+1)]
                b = [tmp2.pop(0) for _ in range(j + 1)]
                c = tmp2.copy()
            
                print('a =', a, 'b =', b, 'c =', c)
        print()
fun()
Добавлено через 1 минуту
Для 5 только

Добавлено через 2 минуты
Но тут хоть из генератора - можно "остановиться когда захочешь"
1
18.01.2021, 13:55

Не по теме:

Цитата Сообщение от robotrd Посмотреть сообщение
Задано непустое множество различных натуральных чисел. Его разбивают на три непустые натуральные наборы.
Далее то, что могу сделать сам > Ко всем числам первого набора дописывают цифру 8, ко всем чисел второго набора дописывают цифру 1, третий оставляют без изменений. Найдите все возможные отношения суммы полученных чисел к сумме первоначальных.
А тестовые данные будут? Без всякой отсебятины, как есть в условии.

0
2 / 2 / 0
Регистрация: 24.06.2019
Сообщений: 20
18.01.2021, 14:27  [ТС]
Цитата Сообщение от Gdez Посмотреть сообщение
robotrd,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from itertools import permutations
from math import factorial
def fun() :
    n = 5 #int(input())
    k = factorial(n)
    mas = (xlist for xlist in
     permutations(list(range(1,n+1))))
    for _ in range(k) :
        tmp1 = next(mas)
        for i in range(n-2) :
            for j in range(n - i - 2) :
                tmp2 = list(tmp1)
                a = [tmp2.pop(0) for _ in range(i+1)]
                b = [tmp2.pop(0) for _ in range(j + 1)]
                c = tmp2.copy()
            
                print('a =', a, 'b =', b, 'c =', c)
        print()
fun()
Добавлено через 1 минуту
Для 5 только

Добавлено через 2 минуты
Но тут хоть из генератора - можно "остановиться когда захочешь"
Все отлично. Спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.01.2021, 14:27
Помогаю со студенческими работами здесь

Сколько проходов с перестановками элементов потребуется при сортировке массива из ста чисел
Не могу понять в чём подвох задания, нужна светлая голова Вот сам вопрос : Сколько проходов с перестановками элементов потребуется при...

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

Художник Нумерос создал композицию, в основе которой два списка чисел, являющихся перестановками один одного
Художник Нумерос создал композицию, в основе которой два списка чисел, являющихся перестановками один одного. Он очень гордился своим...

Дан вектор, элементы которого списки из целых чисел.Заменить на NILL списки с суммой равной 0
Дан вектор, элементы которого списки из целых чисел.Заменить на NILL списки с суммой равной 0.

K. Permutations
Известно, что любую перестановку можно единственным образом представить в виде произведения непересекающихся циклов. При этом само...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru