Code Monkey home page Code Monkey logo

2023-mp's Introduction

2023-MP

ННГУ, методы программирования, практика по курсу 2023 года

Презентация по курсу (обновляемая)

Для работы необходим python 3.9 и выше. Библиотеки: numpy, pandas, matplotlib, tensorflow, Pillow, scipy.signal. Редактор любой. Из неплохих: IDLE (родной, идёт вместе с установщиком), Visual Studio Code, notepad++, PyCharm, vim (для любителей сначала страдать, потом наслаждаться).

Работа с блокнотами онлайн, с возможностью подключения удалённых мощностей гугла (GPU, TPU): https://colab.research.google.com/

Таблица, где я буду отмечать сданные работы: 2023-Методы программирования

Сервер в Дискорд, где буду дублировать: https://discord.gg/MzPkCYf4Dh (получить роль в канале "Основной") Мой контакт: [email protected]

Внутри папки группы создать папку имени себя (фамилия и имя). В своей папке можете делать все что угодно, в чужие не залезать, в корневую тоже. Я буду ориентироваться на файлы, где в названии будет номер лабораторной.

Крайний срок приема работ 27.05.2023 до 11:00

[1] Работа со структурами данных

Исходные данные:

  • свои ФИО, число, месяц, год рождения в виде кортежа;
  • предметы в школьном аттестате (не меньше 14), как словарь из названия и оценки (можно мокать);
  • имена (только) ближайших (до двоюродных включительно) родственников в списке и их год рождения через пробел (в одной строке);
  • имя, которое вы бы дали своей домашней пушистой киве (строка).

Действия:

  1. вывести среднюю оценку в аттестате;

  2. вывести уникальные имена среди своих родственников (включая свое);

  3. общая длина всех названий предметов;

  4. уникальные буквы в названиях предметов;

  5. имя вашей домашней пушистой кивы в бинарном виде;

  6. отсортированный по алфавиту (в обратном порядке) список родственников;

  7. количество дней от вашей даты рождения до текущей даты (должна быть всегда актуальной);

  8. FIFO очередь, в которую можно добавлять предметы по вводимому с клавиатуры индексу (до команды остановки), после введения - вывести все;

  9. по введеному индексу, поменять имя в отсортированном списке родственников на имя ацтекского правителя (смотреть по списку всех на странице https://en.wikipedia.org/wiki/List_of_rulers_of_Tenochtitlan) под номером, получаемым из вашей даты рождения: number = (day + month**2 + year) % 21 + 1;

  10. создать связный список, например, как словарь, где ключ - имя родственника, а значение (ссылка на следующий элемент) - индекс следующего имени по исходному списку, упорядоченному по их (родственников) годам рождения), исходный список при этом должен остаться неизменным;

  11. написать функцию-генератор, свой вариант определяется как number = len("ФИО") * len (family_names) % 4:

    1. аликвотной последовательности;
    2. последовательности Сильвестра;
    3. числа трибоначчи;
    4. числа Леонардо.

[2] Алгоритмы сортировки

Исходные данные:

  • список целых чисел от 0 до 999999;
  • список из 99999 случайных вещественных чисел в диапазоне [-1, 1];
  • 42000 разных точки комплексной плоскости, лежащие внутри окружности радиуса r = birth_day / birth_month (можно случайных, можно равномерно распределённых), сортировать по модулю числа;
  • отрывок из книги (любой, на свой выбор) не менее 10000 слов, разбитый в список по словам.

Действия:

Реализовать для каждого из исходных списков один из представленных алгоритмов сортировки (подробнее почитать о них тут). Выбор тех четырех алгоритмов, которые будут использованы конкретно у вас:

import random

random.sample(range(1, 18), 4) # вернет список из 4 случайных значений в заданном диапазоне

  1. shaker sort, сортировка перемешиванием;
  2. bubble sort, сортировка пузырьком;
  3. comp sort, сортировка расческой;
  4. insertion sort, сортировка вставкой;
  5. Shellsort, сортировка Шелла;
  6. tree sort, сортировка деревом;
  7. Gnome sort, гномья сортировка;
  8. selection sort, сортировка выбором;
  9. Heapsort, пирамидальная сортировка;
  10. Quicksort, быстрая сортировка;
  11. Merge sort, сортировка слиянием;
  12. Counting sort, сортировка подсчетом;
  13. Bucket sort, блочная (карманная) сортировка;
  14. Radix sort, поразрядная сортировка;
  15. least significant digit;
  16. most significant digit;
  17. bitonic sort, битонная сортировка;
  18. timsort, гибридная сортировка.

[3] Алгоритмы поиска пути и структурное программирование

Исходные данные:

  • файл с текстовым представлением лабиринта;
  • координаты аватара (если задали в стене, то переместить в любую соседнюю свободную);
  • координаты ключа от выхода (если задали в стене, то переместить в любую соседнюю свободную);
  • координаты выхода (на одной из внешних границ);
  • правила нахождения пути до ключа и до выхода.

Действия

  1. В папке _3 запустить скрипт gen_lab_origin.py, подождать его работу несколько минут;

  2. Полученный файл maze-for-u.txt переместить в свою папку;

  3. Найти любой маршрут от начальной координаты аватара до ключа, используя (выбрать или все, или по номеру сезона, в который вы родились, начиная с зимы):

    a. алгоритм Дейкстры; b. поиск в ширину; c. поиск в глубину; d. жадный алгоритм.

  4. Используя А* со следующими параметрами (вес g(x), вес h(x), максимальная длина хранимого списка возможных шагов), найти оптимальный путь до ближайшего выхода;

  5. Сохранить в файл 'maze-for-me-done.txt', в котором точка ключа будет указана как '*', а сам маршрут построен точками к ключу и запятыми от него к выходу.

[4] Моделирование, сопрограммы и объектно-ориентированное программирование

Исходные данные

Действия

2023-mp's People

Contributors

4everpy avatar amis333 avatar artemfot avatar artlex11 avatar blizzek avatar coqppono8 avatar denis75621 avatar diman-ludin avatar dwaffle1 avatar erofeev-kirill avatar grigorylyubimoff avatar illarionbobrov avatar kit8nino avatar kristinapanova avatar maximkatkov avatar moris007 avatar nelendell avatar nozaytopia avatar orel2345 avatar r0m4ikk avatar ripazha0 avatar romzesi avatar savadudin avatar snap1lon avatar stirlik avatar strelok14 avatar t0rape avatar varvikwolf avatar vortexcrab avatar ximbeos avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.