В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
Meow100
Meow100
10.09.2020 23:59 •  Информатика

Установите соответствие между названиями инструментов и пиктограмм в 3д редакторе надо сор по информатике делаю молю а ещё напишите адекватный ответ умоляю ​


Установите соответствие между названиями инструментов и пиктограмм в 3д редакторе надо сор по информ

Показать ответ
Ответ:
привет980
привет980
01.04.2021 04:44
Решение

В питоне есть хороший модуль itertools. В нём есть комбинаторные функции - перестановки, размещения и куча других классных вещей. Давай вызовем itertools.permutations, передадим туда твоё число как строку и длину перестановок - 3:

permutations('123', 3) --> 123 132 213 231 312 321

permutations('100', 3) --> 100 100 10 1 10 1

Очередная перестановка, формально, представляется в виде списка. Переведём в строку: ''.join(i)

...И уберём ведущие нули: .lstrip('0')


Код

import itertools


for i in itertools.permutations(input(), 3):

   print(''.join(i).lstrip('0'))

# Ввод:

# 100

# Вывод:

# 100

# 100

# 10

# 1

# 10

# 1



Условие задачи позволяет нам выводить повторяющиеся перестановки. Если нас это не устраивает, мы можем добавить проверку уникальности через set:

import itertools


checker = set()

for i in itertools.permutations(input(), 3):

   s = ''.join(i).lstrip('0')

   if not(s in checker):

       print(s)

       checker.add(s)

# Ввод:

# 100

# Вывод:

# 100

# 10

# 1

0,0(0 оценок)
Ответ:
ДЭМКО
ДЭМКО
09.01.2021 00:20
PascalABC.NET 3.4.2, сборка 1863 от 10.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var N, A, B, C, D: integer;

 Readln(N, A, B, C, D);

 if A > C then (A, B, C, D) := (C, D, B, A);

 var s := 1.To(A - 1);

 if B < C then // ( ) [ ]

   s := s + B.Downto(A) + (B + 1).To(C - 1) +

       D.Downto(C) + (D + 1).To(N)

 else

 if D < B then // ( [ ] )

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - C + 1, t -> t + A + B - D) +

       SeqGen(B - D, t -> A - t + B - D - 1) + (B + 1).To(N)

 end

   else // ( [ ) ]

 begin

   s := s + SeqGen(C - A, t -> B - t) +

       SeqGen(D - B, t -> D - t) + SeqGen(B - C + 1, t -> A + t) +

       (D + 1).To(N);

 end;

 s.Println;

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота