8.04 Прочие прототипы
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Напишите программу, которая выводит с новой строки все возможные перестановки длиной 2 в алфавите из букв: A, B, C. В ответе запишите вывод программы через пробел.
from itertools import permutations symbols = [’A’, ’B’, ’C’] for x in permutations(symbols, 2): print(*x, sep=’’)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая находит количество всех возможных перестановок длиной 3 в алфавите из символов: A, B, D, E. В ответе запишите вывод программы.
from itertools import permutations symbols = [’A’, ’B’, ’D’, ’E’] print(len(list(permutations(symbols, 3))))
Ошибка.
Попробуйте повторить позже
Напишите программу, которая выводит все двузначные числа в промежутке [10; 30]. В ответе запишите вывод программы через пробел.
from itertools import product digits = [’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’] for x in product(digits, repeat=2): num = int(’’.join(x)) if 10 <= num <= 30: print(num, end=’ ’)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая выводит количество всех трёхзначных чисел в промежутке [156; 189].
from itertools import product digits = [’0’, ’1’, ’2’, ’3’, ’4’, ’5’, ’6’, ’7’, ’8’, ’9’] for x in product(digits, repeat=3): num = int(’’.join(x)) if 156 <= num <= 189: print(num, end=’ ’)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая выводит с новой строки все возможные наборы логической функции, зависящей от 3 переменных.
from itertools import product for x in product([0, 1], repeat=3): print(*x)
Ошибка.
Попробуйте повторить позже
Дан список команд на футбольный турнир: "Метеор "Ракета "Пушка "Искра". Известно, что команды Метеор и Пушка не могут играть между собой, как и "Ракета"и "Искра"между собой. Напишите программу, которая выводит с новой строки все возможные игры команд между собой.
from itertools import combinations teams = ["Метеор", "Ракета", "Пушка", "Искра"] for x in combinations(teams, 2): if not ("Метеор" in x and "Пушка" in x or "Ракета" in x and "Искра" in x): print(*x)
Ошибка.
Попробуйте повторить позже
Три игральных шестигранных кубика бросили на стол. Напишите программу которая выводит всевозможные комбинации в формате: "К1: 5, К2: 6, К3: 1".
from itertools import product for x in product(range(1, 7), repeat=3): print(f"K1: {x[0]}, K2: {x[1]}, K3: {x[2]}")
Ошибка.
Попробуйте повторить позже
В группе N человек. Напишите программу, которая выводит все возможные разные подгруппы, которые можно образовать, при условии, что в подгруппу входит не менее M человек? (M < N)
from itertools import combinations n = int(input()) m = int(input()) for i in range(m, n + 1): for x in combinations(range(n), i): print(*x)
Ошибка.
Попробуйте повторить позже
Напишите программу, которая выводит все возможные пятизначные числа (без повторения цифр), которые можно составить из цифр от 1 до K включительно. (K <= 5).
from itertools import permutations k = int(input()) # Функция lambda x: ’’.join(x) "склеивает" кортеж # ("A", "B", "C") -> "ABC" print(*map(lambda x: ’’.join(map(str, x)), permutations(range(1, k + 1), 5)))
Ошибка.
Попробуйте повторить позже
Напишите программу, которая выводит все возможные шестизначные числа (без повторения цифр), которые можно составить из цифр от L до M включительно. (L <= M <= 6)
Ошибка.
Попробуйте повторить позже
Пусть "О"означает выпал орёл, а "Р"выпала решка. Напишите программа, которая выводит все возможные наборы выпадений при N бросках.
from itertools import product n = int(input()) print(*map(lambda x: ’’.join(x), product([’O’, ’P’], repeat=n)), sep="\n")
Ошибка.
Попробуйте повторить позже
В магазине продаётся виноградный, персиковый и яблочный сок. Нужно купить N пакетов сока. Выведите с новой строки все возможные различные наборы, которые можно составить?
from itertools import product juice = [’В’, ’П’, ’Я’] n = int(input()) print(*map(lambda x: ’’.join(x), product(juice, repeat=n)), sep="\n")
Ошибка.
Попробуйте повторить позже
Анаграмма — это слово (не обязательно осмысленное), полученное из данного слова перестановкой букв. Например, wco является анаграммой слова cow. Выведите с новой строки все возможные анаграммы слова info.
from itertools import permutations print(*map(lambda x: ’’.join(x), permutations(’info’)), sep="\n")
Ошибка.
Попробуйте повторить позже
В финальном забеге на 128 м участвуют Вова, Илья и Дима. Напишите программ возможные варианты распределения призовых мест.
from itertools import permutations print(’1 место\t2 место\t3 место’) print(*map(lambda x: ’\t’.join(x), permutations(["Вова", "Илья", "Дима"])), sep="\n")
Ошибка.
Попробуйте повторить позже
Напишите программу, которая выводит всевозможные двузначные нечётные числа, состоящие из цифр 1, 2, 3, 6, 9.
from itertools import product for x in product([’1’, ’2’, ’3’, ’6’, ’9’], repeat=1): for last_digit in [’1’, ’3’, ’9’]: print(’’.join(x) + last_digit)
Ошибка.
Попробуйте повторить позже
Сколько рёбер имеет полный граф на семи вершинах?
В графе имеется вершин, из каждого выходит по
ребер. Но если мы просто это перемножим, то посчитаем не кол-во
рёбер, а кол-во упорядоченных пар. Можно представить это как
руки, но
рукопожатие. Значит, кол-во ребер равно
=
.
Ошибка.
Попробуйте повторить позже
Марии нужно выбрать из
баскетболистов, чтобы сформировать команду для предстоящего турнира. Сколькими
различными способами она может выбрать свою команду?
Чтобы решить проблему, мы можем использовать комбинационную формулу, которая задается:
где - общее количество игроков, а
- количество игроков, которые будут выбраны.
В этом случае Марии нужно выбрать игрока из
, поэтому у нас есть:
Таким образом, существует различных способов, которыми Мария может выбрать свою команду из
баскетболистов.
Ошибка.
Попробуйте повторить позже
Предположим, что в книжном магазине на определенной полке в общей сложности книг. Если клиент хочет купить
книг, сколькими различными способами он может выбрать эти
книг с полки?
Чтобы решить эту проблему, мы можем снова использовать комбинационную формулу:
где - общее количество книг, а
- количество книг, которые будут выбраны.
В этом случае клиент хочет выбрать книг из
, поэтому у нас есть:
Таким образом, существует различных способа, с помощью которых покупатель может выбрать
книг с
полки.
Ошибка.
Попробуйте повторить позже
ВО хочет передать различных сообщения через световое табло, состоящее из лампочек. Каждая лампочка имеет три
состояния: включена и горит белым, выключена, мигает. Сколько лампочек нужно ВО для достижения этой
цели?
Поскольку каждая лампочка имеет три возможных состояния, мы можем представить каждое сообщение, используя последовательность из трех состояний для каждой лампочки. Например, последовательность «включено и горит белым, выключено, мигает» может представлять одно сообщение.
Количество различных последовательностей из трех состояний, которые могут быть назначены каждой
лампочке, равно . Следовательно, общее число возможных последовательностей для n лампочек равно
.
Нам нужно найти минимальное значение такое, чтобы
было больше или равно
. Чтобы сделать это, мы
можем взять логарифм обеих сторон неравенства:
Используя калькулятор, мы можем найти, что равно приблизительно
. Следовательно, нам нужно по
крайней мере
лампочки, чтобы представлять
различных сообщения.
Если мы хотим найти общее количество различных последовательностей из трех состояний, которые могут быть
присвоены лампочкам, мы можем использовать формулу
, которая дает нам
. Следовательно, ВО требуется по
крайней мере
лампочки для передачи
различных сообщений, и у нее есть
различная последовательность
состояний на выбор.
Ошибка.
Попробуйте повторить позже
Найдите число точек пересечения пар диагоналей (не являющиеся вершинами) в выпуклом 100-угольнике, если никакие три диагонали не проходят через одну точку.
Получается, что требуется найти число пар пересекающихся диагоналей выпуклого 100-угольника. Каждая пара пересекающихся диагоналей — это четвёрка вершин 100-угольника, концов этих диагоналей. Наоборот, для любой четвёрки вершин существует ровно одна пара пересекающихся диагоналей, концами которых являются эти четыре вершины.
Таким образом, число пар пересекающихся диагоналей равно числу способов выбрать четыре вершины из n, то есть