Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

Обучение Python — работа в Москве

Дата: 2025-04-27
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
от 1000.00 руб.
Дата публикации
2025-04-27
Описание
Для себя Решить задачу: В нашем проекте мы используем виртуальные серверы, каждый из которых имеет два независимых сетевых интерфейса. На каждом интерфейсе присутствуют адреса как IPv4, так и IPv6. Для того, чтобы не запутаться во всех этих адресах, мы используем DNS. Так у каждого сервера появляется два имени: в зоне kit.yandex.net для первого интерфейса в зоне ya.kit.com для второго Все записи выглядят как contest-XXXX.domain., но из-за особенностей работы приложения, числа, замещающие XXXX могут быть разными. Например, один и тот же сервер может иметь такие записи: contest-123.kit.yandex.net 600 IN A 10.1.2.3 contest-123.kit.yandex.net 600 IN AAAA fc01::fe12:5416 contest-1154.ya.kit.com 600 IN A 10.2.7.16 contest-1154.ya.kit.com 600 IN AAAA fc02::de12:3217 Число во втором названии может быть получено из первого названия, если взять первые три символа hex-представления md5 и преобразовать их в десятичное число. Для примера выше: $ echo $((0x$(echo -n contest-123.kit.yandex.net | md5sum | head -c 3))) 1154 Мы обнаружили, что в зоне ya.kit.com отсутствуют некоторые IPv6-записи. Вам необходимо найти все виртуальные машины (их fqdn в зоне kit.yandex.net) у которых отсутствуют записи в ya.kit.com Формат ввода Ваше приложение будет запущено в каталоге, в котором есть два файла: a.input и b.input В них содержатся, соответственно, выгрузки зоны kit.yandex.net и зоны ya.kit.com. Формат вывода В качестве ответа выведите отсортированный (по идентификатору в fqdn) список доменных имён (kit.yandex.net) без IPv6-записей во второй зоне (ya.kit.com) Формат ответа: contest-123.kit.yandex.net contest-124.kit.yandex.net contest-125.kit.yandex.net contest-126.kit.yandex.net 2) задача Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt В нашем сервисе есть веб-сервер, который раздает полезные данные пользователям. Мы хотим понимать, из каких стран и городов к нам приходят пользователи, поэтому мы хотим разметить журнал запросов веб-сервера дополнительной информацией. Для решения задачи у вас времени не нашлось, зато время оказалось у стажера, который написал программу, размечающую лог запросов названиями стран из базы. К сожалению, когда вы добрались проверить эту программу, стажер оказался в отпуске. Программа выглядит рабочей, но есть несколько нюансов: она работает не очень быстро; она иногда потребляет много памяти; иногда она работает не совсем корректно; она размечает только страны, но не размечает города. Ниже приложен код программы. Ваша задача: найти и исправить логическую ошибку в коде; ускорить работу программы; уменьшить потребляемую память; добавить в разметке название города сразу после названия страны. Если программа выдает неправильные значения, то оптимизировать ее рано. Пример строк в файле с геобазой: 112.9.96.0 112.9.127.255 Китай Циндао 112.9.128.0 112.9.255.255 Китай Циндао 112.10.0.0 112.10.127.255 Китай [Телефон скрыт] 112.10.143.255 Китай Ханчжоу [Телефон скрыт] 112.10.159.255 Китай Ханчжоу Пример строк журнала сервера: [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] “GET /server HTTP/1.1“ 200 7881 “-“ “Go-http-client/1.1“ [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] “GET /.vscode/sftp.json HTTP/1.1“ 301 319 “-“ “Go-http-client/1.1“ [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] “GET /server HTTP/1.1“ 302 0 “-“ “Go-http-client/1.1“ [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] “GET /?rest_route=/wp/v2/users/ HTTP/1.1“ 301 194 “-“ “Go-http-client/1.1“ [Телефон скрыт] - - [10/Jan/2025:07:44:17 +0300] “GET /debug/default/view?panel=config HTTP/1.1“ 301 194 “-“ “Go-http-client/1.1“ Код, который написал стажер: class AddRegionInfo: def __init__(self, geo_file_name, in_log_file_name, out_log_file_name): self.geo_data = self.read_geo_data(geo_file_name) self.process_log(in_log_file_name, out_log_file_name) def read_geo_data(self, file_name): f = open(file_name, 'r') return f.readlines() def process_log(self, in_file_name, out_file_name): f = open(in_file_name, 'r') lines = f.readlines() f = open(out_file_name, 'w') for line in lines: fields = line.split(' ') ip = fields[0] fields[-1] = fields[-1].strip() for geo in self.geo_data: gf = geo.split('\t') if self.is_bigger(ip, gf[0]) and self.is_bigger(ip, gf[1]): fields = [gf[2].strip()] + fields f.write(' '.join(fields) + '\n') break def is_bigger(self, a1, a2): a1s = a1.split('.') a2s = a2.split('.') if a1s[0] > a2s[0]: return True if a1s[1] > a2s[1]: return True if a1s[2] > a2s[2]: return True if a1s[3] > a2s[3]: return True return False if __name__ == '__main__': AddRegionInfo('geobase.txt', 'input.txt', 'output.txt') Примечания Задачу можно делать итеративно Самым важным является правильность значений, нет смысла оптимизировать то, что работает неправильно Поддержку городов можно добавлять в произвольное время, без нее тоже можно получить ненулевой балл за эту задачу 3) задача Василий - новый DevOps в небольшой компании, которая активно использует микросервисы. Продуктовое окружение этой компании использует kubernetes, развёрнутый прямо на “железе“. Недавно произошел инцидент и часть запросов клиентов зависла на каком-то количестве перегруженных машин. Беда в том, что никто не озаботился мониторингом загрузки CPU, и единственный косвенный показатель нагрузки, который у Василия есть - это температура CPU железных серверов. Василий выгрузил в SQLite-базу логи запросов во время инцидента, табличку привязки подов приложений к машинам и лог температурных измерений. Они выглядят следующим образом (тут приведён пример): Табличка requests: | request_id | parent_request_id | pod_id | ts | | ---------- | ----------------- | ------ | ------- | | start1 | NULL | 1 | 10 | | cont1 | start1 | 2 | 12 | | cont2 | cont1 | 2 | 16 | | start2 | NULL | 1 | 29 | Где: request_id - уникальный идентификатор запроса parent_request_id - уникальный идентификатор запроса, породившего данный pod_id - идентификатор пода, на котором был запущен микросервис, принявший запрос ts - unixtime в секундах момента, когда запрос пришел в микросервис У каждого запроса есть id, те запросы, что были порождены не клиентом, а внутренними микросервисами, имеют parent_request_id. При этом граф вызовов между микросервисами может быть произвольно большим. Табличка pods: | pod_id | machine_id | | ------ | ---------- | | 1 | 1 | | 2 | 2 | Где: pod_id - идентификатор пода machine_id - идентификатор железной машины, на которой он запущен (на одной машине может быть запущено много подов, десятки/сотни) Табличка measurements: | machine_id | ts | temperature | | ---------- | -- | ----------- | | 1 | 10 | 62 | | 1 | 17 | 61 | | 1 | 23 | 63 | | 1 | 31 | 61 | | 2 | 9 | 70 | | 2 | 15 | 86 | | 2 | 21 | 92 | | 2 | 30 | 89 | Где: machine_id - идентификатор железной машины ts - unixtime момента, когда было снято измерение (на каждой машине измерения снимаются не чаще 1 раза в 5 секунд и не реже 1 раза в 10 секунд) temperature - температура CPU в градусах Цельсия Василий почитал документацию к используемым в компании процессорам и определил, что признаком перегруженного CPU будет его температура выше 85 градусов. Помогите Василию оценить, сколько запросов клиентов пострадало. Для этого составьте SQL-запрос, который выведет список request_id клиентов, графы вызовов которых оборвались на перегруженных машинах. Например, для приведенных выше примеров таблиц, таким запросом будет запрос с request_id start1. Задача является достаточно сложной, имеет смысл начать с отладки локально: Скачайте бинарную сборку SQLite (https://www.sqlite.org/download.html) или поставьте его любым удобным вам способом, например, с помощью пакетного менеджера вашего дистрибутива Linux. Создайте БД и заполните таблицы, как показано в примере выше. Попробуйте написать SQL-запрос, который найдет запрос с request_id cont2. Попробуйте написать SQL-запрос, который сможет найти start1 по цепочке вверх или вниз (как вам удобно). Если у вас не получается пункт 4 - сдавайте запрос из пункта 3
Похожие заказы
Обучение Assembler
дистанционно
договорная
Курсовая Нужно написать программу: программа "Календарь-ежедневник": на заданную дату в заданное время реализовать возможность запланировать событие. Реализовать функции создания, редактирования, удаления событий. Предложите и реализуйте расширения функциональности этой программы (2-3 функции) (можно ориентироваться на функциональность ежедневника OutLook и аналогичных приложений). Программы разрабатываются на языке ассемблера Fasm на платформе GNU/Linux. Можно использовать библиотеки на языке С (ncurses и т.д.)
Москва
Репетиторы
2025-05-03
Откликнуться
Машинное обучение
дистанционно
договорная
Для себя Разобрать модели классические для временных рядов. Дать основу для понимания
Москва
Репетиторы
2025-05-03
Откликнуться
Обучение программированию
без разницы
договорная
Язык программирования: C++ Для себя Суть задачи - разработка системы работы автобусов (interval, tick) и т.п. (курсовой проект). Есть полное описание задачи, эталонный ввод и вывод. Суть в реализации кода, есть накиданная структура. Полное описание задачи: Срок решения: 1 неделя. Названия предмета нет - типичное задание на C++. (Программирование). Само задание: Введение Постановка задачи Дана система, состоящая из следующих элементов: диспетчерская парка автобусов: круговой маршрут, из заданного количества остановок; на остановке определенное множество пассажиров на посадку; автобусов с характеристиками: максимальное количество пассажиров (вместимость); уникальный номер; пассажиров с множеством состояний: ожидает на остановке; находится в автобусе. Характеристиками: уникальный номер проездного удостоверения; номер остановки ожидания; номер целевой остановки. экрана отображения информации о функционировании системы. Количество остановок n задано. Количество автобусов k, выходящих на маршрут задано. Все автобусы движутся по кругу, в одном направлении, не пропуская ни одной остановки. Система функционирует по тактам. Правила функционирования системы: Количество остановок задается параметром n. Остановки нумеруются от 1 до n согласно порядку движения автобуса по маршруту. Время движения между остановками занимает разное, но заданное количество тактов. Изначально все автобусы пусты и выходят на маршрут по графику из автобусного парка. Выход автобусов на маршрут организует диспетчерская автобусного парка. Автобусы движение начинают с первой остановки. Интервал выхода на маршрут между автобусами больше одного такта. Время движения от парка до первой остановки занимает фиксированное количество тактов. Пассажир может ожидать автобус на любой остановке. Пассажир садится в автобус, если есть место, иначе ожидает очередной. Посадка пассажиров выполняется согласно очереди, последовательности подхода на остановку. При подходе на остановку, пассажир добавляется в состав системы. После выхода из автобуса, пассажир удаляется из системы Высадка и посадка в автобус на остановке занимает одни такт. Маршрут разбит на интервалы. Интервалы перенумерованы от единицы. Автобус при движении за один такт проезжает один интервал. Остановки расположены в начале интервала. Номер интервала, в начале которого расположена остановка, ставиться в соответствии остановке. Перед началом очередного такта может быть выдана команда. Команда отрабатывает до отработки действий такта. Надо моделировать работу системы с соблюдением перечисленных правил. Команды системы: Команда подхода пассажиров на остановках. Команда отображения состояния на остановке. Команда отображения состояния автобуса. Команда отображения состояния на маршруте. Команда отображения иерархии объектов диспетчера. Команда отображения иерархии объектов маршрута. Пустая команда (строка ничего не содержит). Элементы системы выполняют действия согласно такту. Команда завершения работы системы. Построить программу-систему, которая использует объекты: Объект «система». Объект для чтения исходных данных и команд. Считывает данные для первоначальной подготовки и настройки системы. Считывает команды. После чтения очередной порции данных для настройки объект выдает сигнал соответствующим объектам (элементам системы). Данные для первоначальной настройки системы вводятся до начала отсчета тактов. Первая команда выполняется в рамках первого такта. После чтения очередной команды, объект анализирует наименование команды и выдает сигнал с текстом полученных данных (включая номер такта и наименование команды) соответствующим объектам. Все данные настройки и данные команд по структуре корректны. Каждая строка команд соответствует одному такту (отрабатывается в начале такта). Если строка пустая, то система отрабатывает один такт. В каждом такте элементы системы отрабатывают положенные действия или находятся в состоянии ожидания. Объект диспетчерская автобусного парка. Наименование объекта: object_dispatcher. Изначально является головным для множества автобусов и содержит график выхода автобусов на маршрут. Организует выпуск автобусов на маршрут согласно графику по тактам. Объект маршрут. Наименование объекта: object_route. Является головным для множества объектов остановок автобуса и множество объектов автобусов с момента первой остановки автобуса на первой остановке. Объект моделирующий остановку автобуса. Наименование объекта: A_«номер остановки». Содержит номер остановки, очередь ожидающих автобус пассажиров. Данному объекту по иерархии подчинены объекты пассажиров, ожидающих автобус. Объект, моделирующий автобус. Содержит номер автобуса, значение вместимости, список пассажиров в автобусе, номер интервала, в начале которого находится автобус. Данному объекту по иерархии подчинены объекты пассажиров, расположенных в автобусе. Объект, моделирующий пассажира. Наименование объекта: Passenger_«номер проездной карты». Содержит: значение номера проездной карты, номер исходной остановки, номер целевого остановки. Объект имеет состояния: ожидает на остановке; находиться в автобусе. Объект для вывода информации. Текст для вывода объект получает по сигналу от других объектов системы. Каждое присланное сообщение выводиться с новой строки. Архитектура иерархи объектов. Объект системы моделирования работы автобусного маршрута. Объект ввода. Объект диспетчера автобусного парка (этот фрагмент иерархии в начале работы системы). Объект автобус 1. Объект автобус 2. . . . . . Объект автобус k. Объект маршрут Объект остановка 1. Объекты ожидающих пассажиров. Объект остановка 2. Объекты ожидающих пассажиров. . . . . . Объект остановка n. Объекты ожидающих пассажиров. Объект автобус 1. Объекты пассажиров в автобусе. Объект автобус 2. Объекты пассажиров в автобусе. . . . . . Объект автобус k. Объекты пассажиров в автобусе. Объект вывода. Сконструировать программу-систему, реализующую следующий алгоритм: 1. Вызов от объекта «система» метода build_tree_objects ( ), построения иерархии объектов. 1.1. Построение исходного дерева иерархии объектов. 1.2. Установка связей сигналов и обработчиков между объектами. 1.3. Выдача сигнала объекту чтения для ввода первой строки данных (количество автобусов и их характеристик: номер автобуса и значения вместимости). 1.4. Создание объектов автобусов и определение их характеристик. 1.5. Выдача сигнала объекту чтения для ввода второй строки данных (графика выхода автобусов на маршрут). 1.6. Формирование графика выхода автобусов на маршрут в составе объекта диспетчера автобусного парка. 1.7. Выдача сигнала объекту чтения для ввода третей строки данных (количества остановок, количества тактов в пути от парка до первой остановки и количество тактов в пути до следующей остановки маршрута). 1.8. Создание объектов остановок и определение их характеристик. 1.9. Установка связей сигналов и обработчиков между объектами. 1.10 После построения исходного дерева иерархии объектов, все объекты перевести в состояние готовности. 2. Вызов от объекта «система» метода exec_app ( ). 2.1. Цикл по тактам. 2.1.1. Определение номера очередного такта. 2.1.2. Выдача сигнала объекту ввода для чтения очередной команды. 2.1.3. После ввода команды «Turn off the system» выход из цикла. 2.1.4. Выдача сигнала для отработки очередного такта. 2.2. Завершить работу системы. Все приведенные сигналы и соответствующие обработчики должны быть реализованы. Все сообщения на консоль выводятся с новой строки. В набор поддерживаемых команд добавить команду «SHOWTREE» и по этой команде вывести дерево иерархии объектов системы с отметкой о готовности и завершить работу системы (программы). Реализовать два отладочных теста такой командой. Первый после завершения построения дерева иерархии объектов. Второй перед завершением работы системы. Во втором тесте обязательно отработать не менее одной команды посадки пассажиров. При решении задачи необходимо руководствоваться методическим пособием и приложением к методическому пособию Входные данные Первая строка, количество автобусов и их характеристики: номер автобуса и значение вместимости: «целое число, количество автобусов» «строка номера автобуса» «целое число, вместимость» . . . «строка номера автобуса» «целое число, вместимость» Вторая строка, график выхода автобусов на маршрут, номер автобуса и номер такта выхода автобуса на маршрут: «целое число, количества тактов в пути от парка до первой остановки» «строка, номер автобуса» «целое число, номер такта» . . . «строка, номер автобуса» «целое число, номер такта» Третья строка, количества остановок n, количества тактов в пути от парка до первой остановки и количество тактов в пути до следующей остановки маршрута от 1 до n: «целое число, количество остановок» «целое число, количество тактов» . . . «целое число, количество тактов» Последнее значение, это количество тактов от n-ой остановки до первой. Далее построчно вводятся команды. Они могут следовать в произвольном порядке. Команда подхода пассажиров на остановках. Passenger «номер остановки» «номер целевой остановки» «номер проездной карты» . . . «номер остановки» «номер целевой остановки» «номер проездной карты» Подход пассажира на остановку моделируется созданием объект пассажир и на дереве иерархии объектов подчиняется объекту остановка. Команда отображения состояния автобуса: Bus condition «строка, номера автобуса» Команда отображения состояния пассажира: Passenger condition «номер проездной карты» Команда отображения состояния на остановке: Condition on the stop «номер остановки» Команда отображения состояния маршрута: Route status Команда отображения состояния системы: System status Команда отображения иерархии объектов диспетчера парка: Dispatcher objects tree Команда отображения иерархии объектов маршрута: Route objects tree Команда отображения иерархии объектов системы: SHOWTREE Пустая команда (строка ничего не содержит). Элементы системы выполняют действия согласно такту. Последняя команда присутствует всегда Turn off the system Пример ввода: Пришлю ниже. После завершения ввода исходных данных выводиться текст: Ready to work После команды отображения состояния автобуса вывести: «номер такта»: Bus «номера автобуса»: interval «номер интервала»; passengers «количество пассажиров в автобусе». Если автобус с заданным номером на маршруте не найден, то вывести: «номер такта»: There is no bus number «номера автобуса» on the route. После команды отображения состояния пассажира вывести: Если находится на остановке: «номер такта»: Passenger «номер проездной карты» at a bus stop «номер остановки». Если находится в автобусе: «номер такта»: Passenger «номер проездной карты» on the bus «номер автобуса». Если не найден: «номер такта»: Passenger «номер проездной карты» was not found. После команды отображения состояния на остановке вывести: «номер такта»: Bus stop «номер остановки»: passengers «количество пассажиров на остановке». После команды отображения состояния маршрута вывести: «номер такта»: Buses: «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе»; «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе» . . . . Bus stops: «номер остановки» «количество пассажиров на остановке»; . . . Отображается информация об автобусах, в которых находится хотя бы один пассажир. В конце вывода вместо точки запятой ставится точка. Если нет ни одного автобуса с пассажирами, то вывести Buses.. Отображается информация о тех остановках, на которых есть хотя бы один ожидающий автобус пассажир. В конце вывода вместо точки запятой ставится точка. Если нет ни одной остановки автобуса с пассажирами, то вывести Bus stops.. После команды отображения состояния системы вывести: «номер такта»: Dispatcher: «количество автобусов в парке». Buses: «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе»; «номер автобуса» «номер интервала нахождения» «количество пассажиров в автобусе» . . . . Bus stops: «номер остановки» «количество пассажиров на остановке»; . . . Отображается информация об автобусах, в которых находится хотя бы один пассажир. В конце вывода вместо точки запятой поставить точку. Если нет ни одного автобуса с пассажирами, то вывести Buses.. Отображается информация о тех остановках, на которых есть хотя бы один ожидающий автобус пассажир. В конце вывода вместо точки запятой ставится точка. Если нет ни одной остановки автобуса с пассажирами, то вывести Bus stops.. После команды отображения иерархии объектов диспетчера парка вывести ветвь иерархии дерева объектов начиная с объекта object_dispatcher. После команда отображения иерархии объектов маршрута вывести ветвь иерархии дерева объектов начиная с объекта object_route. После команды завершения работы системы вывести. Turn off the system
Москва
Репетиторы
2025-05-02
Откликнуться
Обучение Python
дистанционно
от 1000.00 руб.
Для себя Нужно построить модель прогнозирования сроков годности. Есть вводные данные: каждые 2 недели измерялся ph среды :4,78;4,76;4,75;4,73 Срок годности считается испорченным если ph меньше 4,3 Чат jpt написал такой алгоритм. Сможете примерить на практике? Для построения модели прогнозирования сроков хранения кофейного концентрата с использованием линейной регрессии можно следовать следующим шагам: 1. Сбор данных Соберите данные о pH кофейного концентрата. У вас есть значения pH на каждые 2 недели: - 0 неделя: 4.78 - 2 недели: 4.76 - 4 недели: 4.75 - 6 недель: 4.73 2. Определение зависимых и независимых переменных - Независимая переменная (X): Время в неделях - Зависимая переменная (Y): Значение pH 3. Преобразование данных Необходимо создать таблицу с данными. Например: | Неделя | pH | |--------|------| | 0 | 4.78 | | 2 | 4.76 | | 4 | 4.75 | | 6 | 4.73 | 4. Построение модели Используя линейную регрессию, можно построить модель. Для этого понадобится библиотека, например, scikit-learn в Python: import numpy as np from sklearn.linear_model import LinearRegression # Данные weeks = np.array([0, 2, 4, 6]).reshape(-1, 1) pH_values = np.array([4.78, 4.76, 4.75, 4.73]) # Создание и обучение модели model = LinearRegression() model.fit(weeks, pH_values) # Предсказание pH predicted_pH = model.predict(weeks) 5. Анализ модели Проверьте, когда значение pH станет меньше 4.3. Это можно сделать, решив уравнение линейной регрессии для pH = 4.3. 6. Вывод результатов Сравните предсказанные значения с границей (pH < 4.3) и определите срок годности кофейного концентрата.
Санкт-Петербург
Репетиторы
2025-05-02
Откликнуться
Обучение программированию
дистанционно
договорная
Язык программирования: Unity / Разработка игр Для работы Ищу специалиста по Unity для доработки учебного проекта под VR с обучением. Задачи: – адаптировать сцену под VR (XR Toolkit / OpenXR); – настроить XR Rig с телепортом и взаимодействием через контроллеры; – заменить клики мышью на VR-взаимодействие; – настроить UI для VR. Проект готов. Обучение и сопровождение обязательны. Цена по договорённости.
Москва
Репетиторы
2025-05-02
Откликнуться
Обучение Android-разработке
на дому или дистанционно
договорная
Для работы Взаимодействие потоков. В главной программе запускается таймер. В отдельном потоке получаем bluetooth сообщения и передаем их в Handler, выводящий сообщения на экран. При получении сообщения об аварии таймер нужно остановить. Поскольку таймер это другой поток, то возникает проблема передачи команды остановки таймеру.
Москва
Репетиторы
2025-05-02
Откликнуться
Обучение программированию
дистанционно
договорная
Язык программирования: Начинанающий уровень ребенок 11 лет Для ребёнка Хотим подготовить ребенка к поступлению и освоению профессии, пока для общего развития. Также он ходит на программирование в школе, но там они делают презинтации и одностраничники. Мое мнение нужно начать с более базовых вещей.
Москва
Репетиторы
2025-05-02
Откликнуться