Некоторый завод умеет производить N=100000 различных видов деталей. В каталоге деталей, которые могут быть произведены на этом заводе, все они пронумерованы числами от 1 до N. При этом для производства некоторых деталей сначала нужно произвести какие-то другие детали. При этом детали «не расходуются», например, если для производства детали номер 6 нужны детали номер 7 и 8, а для производства детали номер 7 также нужна деталь номер 8, то для производства детали номер 6 нужно произвести детали номер 8, 7, 6 (деталь номер 8 будет использована и для производства детали номер 7, и для производства детали номер 6) по одному разу. То есть каждую деталь из каталога нужно произвести не более одного раза, или вообще можно не производить, если она не требуется. -Python(Питон)

Необходимо произвести деталь номер 1. Определите, какое наименьшее число деталей (суммарно, включая саму деталь номер 1) нужно произвести для этого, с учетом всех необходимых зависимостей. ВХОДНЫЕ ДАННЫЕ Первая строка входных данных содержит число n, (1≤n≤100000). Каждая из последующих n строк входного файла описывает характеристики производства деталей. Здесь i-я строка содержит список деталей, которые требуются для производства детали с номером i. В списке нет повторяющихся номеров деталей. Список может быть пустым: тогда ему будет соответствовать пустая строка!Суммарно во всех списках содержится не более 200000 элементов. Гарантируется, что не существует циклических зависимостей…

Read More

Даны три стержня, на один из которых нанизаны восемь колец, причем кольца отличаются размером и лежат меньшее на большем. Задача состоит в том, чтобы перенести пирамиду из восьми колец за наименьшее число ходов на другой стержень. За один раз разрешается переносить только одно кольцо, причём нельзя класть большее кольцо на меньшее — Python(Питон)

Данная задача является классической задачей «Ханойские башни». Для её решения можно использовать рекурсивный алгоритм. Вот как это можно сделать на языке Python: В данном коде функция hanoi принимает следующие аргументы: Функция рекурсивно вызывает себя, перемещая n-1 колец с исходного стержня на вспомогательный, затем перемещает самое большое кольцо с исходного стержня на целевой, и, наконец, перемещает n-1 колец с вспомогательного стержня на целевой. Каждый раз, когда мы перемещаем кольцо, мы выводим информацию о перемещении с помощью команды print. Обратите внимание, что начальные номера стержней заданы как 1, 2 и 3. Если…

Read More

Определить число ходов в головоломке «Ханойские башни» — Python(Питон)

Дано число n. Какое наименьшее число перекладываний дисков в головоломке «Ханойские башни»* нужно совершить для переноса пирамидки из n дисков c одного стержня на другой?ВХОДНЫЕ ДАННЫЕ Программа получает на вход одно натуральное число n, 1≤n≤15. ВЫХОДНЫЕ ДАННЫЕ Программа должна вывести одно натуральное число — минимальное число перекладываний дисков, необходимых для переноса пирамидки из n стержней с одного диска на другой.ПРИМЕР ввод 2 вывод 3 Для решения данной задачи можно использовать рекурсивный подход. Количество перекладываний дисков в головоломке «Ханойские башни» для переноса пирамидки из n дисков можно вычислить с помощью следующей формулы: Вот…

Read More

Определите последовательность перемещений в «Ханойской башне» -Python(Питон)

Ограничение по времени работы программы: 1 секундаОригинал Ханойской башни был подвергнут реставрации. В связи с этим во время пользования головоломкой нельзя было перекладывать диски с первого стержня сразу на третий и наоборот (но можно переложить диск с первого стержня на второй, а с него — на третий). При каждом перемещении должно сохраняться правило о том, что нельзя класть диск большего размера на меньший.Определите последовательность перемещений, необходимых для переноса башни из n дисков со стержня номер 1 на стержень номер 3.ВХОДНЫЕ ДАННЫЕ Программа получает на вход количество дисков в пирамидке n (1≤n≤10). ВЫХОДНЫЕ…

Read More

Дано натуральное число n. Напечатайте все n-значные нечетные натуральные числа в порядке убывания — Python(Питон)

Для решения данной задачи на Python можно использовать следующий код: Этот код позволяет напечатать все n-значные нечетные натуральные числа в порядке убывания. Ввод числа n осуществляется пользователем, а затем с помощью цикла for генерируются и печатаются все нечетные числа от 10**n — 1 до 10**(n-1) с шагом -2. Например, если пользователь вводит число n = 3, то будут напечатаны следующие числа: 997, 995, 993, …, 101, 99, 97. Примечание: В коде используется функция input() для ввода значения переменной n. Если вы хотите использовать фиксированное значение n в коде, просто замените…

Read More

-Python(Питон)

В данном примере, функция count_unique_numbers принимает список чисел и использует множество (set) для удаления повторяющихся элементов. Затем, с помощью функции len, мы определяем количество уникальных чисел и возвращаем это значение. В результате выполнения данной программы, на экран будет выведено количество различных чисел в списке. В данном случае, результат будет равен 9.

Read More

Простой неориентированный граф задан списком ребер, выведите его представление в виде матрицы смежности. На вход программы поступают числа n (из отрезка [1;100]) – количество вершин в графе и m ( из отрезка [1; n*(n-1)/2]) – количество ребер. Затем следует m пар чисел – ребра графа. Выведите матрицу смежности заданного графа — Python(Питон)

Пример входных данных: Пример выходных данных: Эта программа считывает количество вершин и ребер графа, а затем считывает пары чисел, представляющих ребра графа. Затем программа создает матрицу смежности и заполняет ее соответствующими значениями. Наконец, программа выводит полученную матрицу смежности.

Read More

Напишите программу, которая находит три наименьших элемента массива и переставляет их в начало массива. Остальные элементы должны следовать далее в том же порядке — Python(Питон)

Входные данныеПервая строка содержит размер массива N . Во второй строке через пробел задаются N чисел – элементы массива. Гарантируется, что 0 < N ≤ 10000 . Выходные данныеПрограмма должна вывести элементы полученного массива в одной строке, разделив их пробелами. Пример входных данных: Пример выходных данных: Эта программа считывает размер массива и его элементы, сортирует массив по возрастанию и переставляет три наименьших элемента в начало массива. Остальные элементы остаются в том же порядке. Затем программа выводит полученный массив.

Read More

-Python(Питон)

В этой программе определена функция adjacency_matrix_to_edge_list, которая принимает матрицу смежности в качестве аргумента и возвращает список ребер. Функция проходит по каждой паре вершин в графе и проверяет, есть ли между ними ребро (1 в матрице смежности). Если ребро есть, то добавляется соответствующая пара вершин в список ребер. Программа сначала запрашивает количество вершин в графе, а затем построчно вводит матрицу смежности. После этого матрица смежности преобразуется в список ребер с помощью функции adjacency_matrix_to_edge_list. Наконец, программа выводит список ребер. Например, при вводе следующей матрицы смежности для графа с 4 вершинами: Программа выведет:…

Read More

Простой неориентированный граф задан матрицей смежности. Найдите количество ребер в графе. На вход программы поступает число n ( из отрезка [0;100]) – количество вершин в графе, а затем n строк по n чисел, каждое из которых равно 0 или 1, – его матрица смежности. Выведите одно число – количество ребер заданного графа. — Python(Питон)

В этой программе определена функция count_edges, которая принимает матрицу смежности в качестве аргумента. Функция проходит по каждой паре вершин в графе и проверяет, есть ли между ними ребро (1 в матрице смежности). Если ребро есть, то увеличивается счетчик ребер. В конце функция возвращает количество ребер. Программа сначала запрашивает количество вершин в графе, а затем построчно вводит матрицу смежности. После этого вычисляется количество ребер в графе с помощью функции count_edges и выводится результат. Например, при вводе следующей матрицы смежности для графа с 4 вершинами: Программа выведет: То есть в данном графе…

Read More