2024a

Материал из PTHSWiki
Перейти к: навигация, поиск

Содержание

Немного LaTeX

Что читать:
LaTeX,GNU/Linux и русский стиль (Е.М. Балдин) (первая глава)
LaTeX по-русски (И. Котельников, П. Чеботаев) (до параграфа 1.4.1)
Набор и вёрстка в системе LaTeX (С.М. Львовский) (I глава, 2 и 3 параграфы)
LaTeX в примерах (К.В. Воронцов) (кому неохота лезть глубоко и нужны практические советы)
The TeXbook (Donald Knuth) (кому, наоборот, хочется приникнуть в первоисточнику)
The TeXbook (Donald Knuth) (это уже совсем первоисточник на родном языке автора)

Как запускать:
Онлайн-версия, можно править код совместно
При установке на свой компьютер нужно различать интерпретатор языка и среду программирования (упрощённо говоря, редактор со специфическими функциями).
Иногда вместе с интерпретатором поставляется и простой редактор (как вместе с Python можно поставить Python IDLE). Например, вместе с интерпретатором MikTex поставляется вполне работоспособный редактор TexWorks.
Другая среда: TeXstudio

Для рисования разных картинок (в т.ч. геометрии) можно использовать пакет tikz
А для изучения того, что вообще можно нарисовать, рекомендуется этот прекрасный сайт.


Подготовка к ЕГЭ

Задачи Ссылки на варианты или наборы задач


Задача 25, маски, перебор В 23 задаче вполне годится рекурсивное решение, поскольку значения обычно невелики. Дополнительные ограничения учитываются с помощью дополнительных параметров рекурсивной функции.
Задачи 16, 23, рекурсия В 16 задаче нужно уметь по описанию рекуррентной зависимости понимать какую именно операцию она означает. В некоторых случаях можно её запрограммировать и по выводу понять, но не всегда.
В 23 задаче вполне годится рекурсивное решение, поскольку значения обычно невелики. Дополнительные ограничения учитываются с помощью дополнительных параметров рекурсивной функции.


Задача 18, ДП Эта задача решается программированием или (условно) Excel-ем.
Программирование подойдёт, если стены обозначены, как запрещённые к посещению клетки, а Excel удобнее, если стены обозначены, как границы между клетками.
Задача 24, строки
Задача 15, побитовые операции, логические выражения, перебор и его оптимизация
Задача 14, системы счисления, перебор
Задачи 5 и 8, системы счисления, перебор
Задачи 9 и 17, массивы и циклы
...

Каталог с файлами к заданиям.
Подготовка к ЕГЭ (Поляков) — много заданий, разборы и т.д. (скроллить страницу вниз!)
База заданий, База вариантов

Задания по программированию и не только

Тема Ссылка для входа Критерии оценивания и замечания
Открытые проблемы геометрии Лекция Сергея Маркелова ...
Кодирование — почтовый индекс и его избыточность ... ...
Перебор с возвратом — паззл Letter-Boxed ... ...
Реализация алгоритма RSA  (обновлено 14.01.2024 — добавлены задачи I, J про цифровую подпись) Вход в тестирующую систему (контест 389) Алгоритм RSA – часть 3
Критерии: <в процессе>
Задачи про простые числа (и не только)  (обновлено 14.11.2023 – условие задачи G) Вход в тестирующую систему (контест 388) Контест, подготовительный к RSA – часть 2
Критерии: AB / ABDF / ABDFGIK до 29.11.2023
Задачи по теории чисел Вход в тестирующую систему (контест 387) Контест, подготовительный к RSA – часть 1
Критерии: A / ABD / ABCDE до 15.11.2023
Материалы по криптографии и теории чисел Тест Ферма на простоту чисел
Криптографический протокол RSA
ЕГЭ, демонстрационный вариант 2024 года Демо-2024 Желающим его (ЕГЭ) сдавать настоятельно рекомендую ознакомиться с заданиями заранее. Т.е. чем раньше, тем лучше.
Интересное чтение (+ самостоятельные проекты для желающих) 1. "Семь языков за семь недель"
2. "Упражнения в стиле программирования"
1. Книжка с проектами, которые предлагается сделать на 7 ОЧЕНЬ разных языках: Ruby, Io, Prolog, Scala, Erlang, Closure, Huskell. Может способствовать расширению кругозора.
2. Замечательная книга — как одно и то же написать на одном языке 27 разными способами. Язык — Python, задача — подсчёт частотности букв в англоязычном тексте.
Желающим — ссылка на github c исходными кодами примеров.


Сроки выполнения задания по вычислительной геометрии ... Вращение в пространстве освещаемого плоского многоугольника: 20.09.2023

Вращение в пространстве любых двух выпуклых многогранников (должен быть общий алгоритм вращения для обоих): 27.09.2023

Инструкция "как реализовать вращение многогранника в пространстве" Полезные картинки для рисования правильных и полуправильных многогранников А это полезные картинки с координатами вершин многогранников (обновлён 2023-05-22 16:00).
А вот и справочная страничка с греческим алфавитом (как вы думаете, какой там нет буквы и почему?).
Вычислительная геометрия, основные примитивы Вход в тестирующую систему (контест 386) Литература: древний, но хороший текст
Задачи A-M до 20.04.2023 21:59:59, критерии (6/8/10)
Задачи N-W до 11.05.2023 21:59:59, критерии (4/6/8)
Весеннее программирование – 2 Вход в тестирующую систему (контест 385) Критерии, как всегда, добрые
Классы (дроби) — контест перенесён "наверх" Вход в тестирующую систему (контест 376) Задачи A-F (3/4/6) до 23.02.2023
Задачи G-M (3/4/5) до 16.03.2023
За задачи N, O отдельная оценка.
Пример того, как можно написать первую задачу
Пример чуть подробнее, со сложением и вычитанием
Структуры данных Вход в тестирующую систему (контест 384) Задачи A-K до 25.01.2023 21:59:59, критерии (3/5/7)
Задачи L-N до 30.01.2023 21:59:59, критерии (1/2/3)
Задачи O-Q до 06.02.2023 21:59:59, критерии (1/2/3)
... Вход в тестирующую систему (контест 382, Python)

Программы для скачивания, Python
A B C D E


... Вход в тестирующую систему (контест 383, C++)

Программы для скачивания, С++
A B C D E


Философское отступление про оптимизацию программ. ... Статья Дональда Кнута почти 50-летней давности
Structured programming with goto statements
и кусочек страницы, на который очень часто ссылаются.
Говорят, что фраза "Premature optimization is the root of all evil" принадлежит Энтони Хоару (Anthony Hoare, автор quicksort), а Кнут её просто популяризировал.

Для тех, кто не осилил прочитать текст и открыть картинку, цитата:
"The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming."

Динамическое программирование
Про редакционное расстояние
Вход в тестирующую систему (контест 381) До 30.11.2022 (задачи A-D: 2/3/4)
До 07.12.2022 (задачи E-L: 2/4/6)
До 14.12.2022 (задачи M-U: 3/5/6)
Самый странный способ вычисления числа π (есть русские субтитры!) ...
Двоичный поиск
Теория
Вход в тестирующую систему (контест 380) До 16.11.2022 23:59:59 (задачи A-F: 3/4/5)
До 22.11.2022 23:59:59 (задачи G-N: 3/4/6)
Описание задачи про приземление самолётов ... Внутри описаны две задачи: написать решение и написать тесты к задаче.
Рассказ Ричарда Фейнмана про "почему"
Смотреть и остальное, конечно, тоже.
... Навеяно обсуждением того, как обрабатываются в Python-функциях объекты изменяемого и неизменяемого типов. Если коротко, "всё сложно и есть нюансы".
Комбинаторика, перечисление объектов
Полезная ссылка для решения некоторых задач
Вход в тестирующую систему (контест 379) Шаблон кода
Часть 1 (A-M), срок сдачи 23:59:59 04.10.2022. Критерии: 4/6/10
Часть 2 (N-W), срок сдачи 23:59:59 18.10.2022. Критерии 2[N-Q]/2[N-Q], T/3[N-Q], T + любые две задачи на выбор
Часть 3 (Y-ZC), срок сдачи 23:59:59 25.10.2022. Критерии: 1/2/4
[Задачи по алгебре Какие именно задачи вам надо решить и оформить определяет оракул.
Cкачайте и запустите эту программу.
Набрать в LaTeX решение двух задач, по одной из каждого раздела. В документе укажите номер обеих задач в соответствии с тем, что вам написал оракул.
Пришлите оба файла: *.tex и *.pdf
Срок сдачи: 23:59:59 17.09.2022
Можете посмотреть задачник по ссылке. Вы получите представление о том, как выглядят формулы, если раньше вы этого не видели.
[Осеннее программирование Вход в тестирующую систему (контест 378) Срок сдачи: 23:59:59 17.09.2022
Критерии: 2/3/5.
Весеннее программирование Вход в тестирующую систему (контест 377) Критерии очень добрые


Обзор последних достижений Deep Learning Видео (youtube, ~ 1 час)
Отдельная ссылка на статью про AlphaCode и "спортивное программирование"
Анонс автора обзора Григория Сапунова:
Нынешняя революция Deep Learning началась уже примерно десять лет назад. За это время много всего произошло. Мы научились решать множество ранее нерешённых задач: распознавать изображения на уровне лучше человека, играть в го, предсказывать структуру белков, генерировать картинки фотографического качества и неотличимые от человеческих тексты. Появились новые архитектуры нейросетей, высокоэффективные и мощные фреймворки и библиотеки, высокопроизводительное железо. Мы продвинулись в научном понимании того, что происходит. Но вопросов ещё множество.

В лекции я сделаю краткий обзор важных вех на этом пути, расскажу про перспективы области и открытые вопросы. Возможно, кто-то из вас поможет продвинуться по этому пути дальше.

Оптимизация перебора (задачи посложнее, после стандартных) Вход в тестирующую систему (контест 375) Внимание! Не все задачи могут быть решены на python с текущими ограничениями на время выполнения.


Рекурсивный перебор (т.н. "стандартные задачи") Вход в тестирующую систему (контест 374) ...


... Вход в тестирующую систему (контест 373) Новогодняя контрольная
Множества и словари Вход в тестирующую систему (контест 369) Множества (задачи A-J): до 23:59:59 18.01.2022 (3/5/8)
Словари (задачи K-Z): до 23:59:59 01.02.2022 (5/9/12)


Задачи, решение которых использует сортировку Вход в тестирующую систему (контест 372) первая неделя (задачи A-J): до 23:59:59 06.12.2021 (3/6/8)
вторая неделя (задачи K-U): до 23:59:59 13.12.2021 (2/4/5)
За решение пары задач OP, а также за задачи M, Q, S, U (за каждую в отдельности) ставится очень хорошая оценка.

Сроки сдачи второй части продлеваются до 23:59:59 20.12.2021.


Реализация стандартных алгоритмов сортировки Вход в тестирующую систему (контест 371) до 23:59:59 30.11.2021 (3/4/6);
За каждую задачу G, H ставится очень хорошая оценка.
Анимация, иллюстрирующая разные алгоритмы сортировки.
Двумерные массивы Вход в тестирующую систему (контест 370) первая неделя (задачи A-M): до 23:59:59 15.11.2021 (5/7/10); дополнительная оценка за первую половину будет ставиться после окончания всего контеста
вторая неделя (задачи N-Z): до 23:59:59 22.11.2021 (4/6/10)
А за каждую задачу ZA, ZB, ZC, ZD ставится очень хорошая оценка.

К одному из вариантов решения задач Q и R: ссылка.


И про то, как пишутся программы, тоже ... Простите пожалуйста, дорогие коллеги! Пока смотрел этот мультфильм, я много раз вспомнил ваше "ведь работает же"!
Обработка файлов (чтение и запись) Вход в тестирующую систему (контест 368) До 23:59:59 26.10.2021 (10/14/19)

Уважаемые коллеги, в этих задачах (да и раньше, но здесь особенно) стоит обратить внимание на разнообразные методы работы со строками (ссылка). Не ограничиваясь теми, что мы явно изучали в 8 классе (count, find, rfind, replace). Ещё раз вспомнить про split (этот метод часто делает за вас 50% вашего труда), прочитать про strip (и его меньших братьев lstrip и rstrip).

Контрольная работа "про всё" Вход в тестирующую систему (контест 367)


Массивы (коротко) Вход в тестирующую систему (контест 365) До 23:59:59 04.10.2021 (4/6/9)
Если вы захотите попробовать, например, пакет matplotlib, даже просто разобраться в примерах — вам очень пригодится умение писать такие штуки.

Стандартная документация

Вещественная арифметика Вход в тестирующую систему (контест 366) До 23:59:59 28.09.2021 30.09.2021 (3/5/8) за самый большой класс на турслёте, а также за красивые песни срок продлевается на два дня


Системы счисления Вход в тестирующую систему (контест 364) До 23:59 16.09.2021 (ABE/ABCEG/ABCEGHJ + любые 3 из набора KLPQ); за решение задач из набора DFUVW — отдельная (и очень хорошая) оценка

Про деление столбиком, периоды и смежные вопросы
Глава 23 легендарной книжки Ганса Радемахера и Отто Тёплица "Числа и фигуры"
Та же глава, опубликованная в Кванте 1994/02, стр. 37-39, к оригинальному тексту добавлены упражнения.

Вариант 1
Вариант 2
Вход в тестирующую систему (контест 363) Контрольная "ЕЩЁ РАЗОК"
—————————————> —————————————> Клуб любителей чтения: как тестировать программу, проверять время её работы и писать генераторы тестов.
Контрольная работа по строкам, рекурсии и массивам Вход в тестирующую систему (контест 362)
—————————————> —————————————> Клуб любителей чтения: зачем давать переменной понятное имя? (обновлено 08.05.2021)
Дополнительный листок про массивы. Вход в тестирующую систему (контест 361) За каждые 4 задачи после обсуждения с вами решения ставится 5. За решение задачи N выдаётся шоколадка.
Массивы Вход в тестирующую систему (контест 360) До 15.04.2021 (задачи A-N, 14 задач): 6/9/12

До 22.04.2021 (задачи O-Z, 12 задач): 4/7/9
Тестирование проводится мягче, чем в предыдущих двух темах. Вы видите итог тестирования, но не видите тестов.
Про передачу параметров, в частности массивов, в качестве параметров функций можно почитать на 57 странице в справочнике.
Письменный разбор для любителей почитать. Если такой формат будет одобрен, попробую выкладывать регулярно.

[КР — строки] Вход в тестирующую систему (контест 359) ...


Памяти Джона Конвея, который придумал много чего разного, не только игру "Жизнь".
 Обзорное видео, посвящённое Game of Life
Строки и циклы Вход в тестирующую систему (контест 358) Пример использования функций ord() и chr() (запустите и посмотрите, что она делает.)
Внимание! Все решения проходят проверку только после окончания срока (т.е. 03.03.2021). Тестируйте самостоятельно!

Внимание! Срок продлён. До 23:59:59 03.03.2021, критерии: 13/16/21
Пример стресс-теста для чисел: быстрое решение / медленное решение / сравнение
Пример стресс-теста для строк: Cравнение / Медленное решение задачи E


Строки, срезы и методы Вход в тестирующую систему (контест 357) Внимание! Все решения проходят проверку только после окончания срока (т.е. 10.02.2021). Тестируйте самостоятельно!
До 23:59:59 10.02.2021, критерии: 4/8/11
Функции Вход в тестирующую систему (контест 356) Внимание! Срок продлён.
До 23:59:59 24.01.2021, критерии: 5/7/9 (только задачи A-L);

до 23:59:59 04.02.2021, критерии: 5/7/11 (только задачи M-ZA);

[КР — циклы и всё, что раньше] Вход в тестирующую систему (контест 355) ...
Цикл while Вход в тестирующую систему (контест 354) до 17.12.2020, критерии: 10/15/21 (или D, E, F, G, I, [2:K,L,O,P], M, N, U, V, Z)
Cрок продлён, но добавлен дополнительный критерий за текущую работу. Вечером в среду, точнее 09.12.2020 23:59:59 будут выставлены оценки по следующим критериям:
  • для тех, кто решает "подряд" это 6/8/13
  • для тех, кто решает на 5 это 3/5/7 (из числа указанных задач на 5).
  • Цикл for Вход в тестирующую систему (контест 353) до 26.11.2020, критерии: 10/15/22 (или E,L,N,O,Q,T,V,W,[1:X,Y] на 5), можно досдать до 23:59:59 27.11.2020
    [КР — вычисления и условия] Вход в тестирующую систему (контест 352) ...
    Условный оператор Вход в тестирующую систему (контест 351) до 22.10.2020, критерии: 10/15/20 (или D,I,M,N,T,W,X,Y на 5)
    Целочисленная арифметика Вход в тестирующую систему (контест 350) до 01.10.2020, критерии: 10/15/23 (или J,K,R,S,T,V,W,Y на 5)


    Тренажёр слепой печати

    Ссылка Критерии оценивания и замечания
    Ссылка для входа в класс
    Убедитесь, что у вас свежая версия браузера (Chrome, Mozilla)
    ...


    Ссылки

    По поводу оформления программ на Python и C++.
  • Python: стандартный PEP-8 (Python Enhancement Proposal) официальная страница (англ.), один из урезанных переводов, если по-английски совсем никак
  • C++: подробный гугловый стайлгайд (англ.)
  • Вердикты тестирующей системы и их описание
    Для установки Python и сред программирования (выбирайте нужный вариант для вашей версии операционной системы):

    Все 4 среды (VS Code, PyCharm, SublimeText и Thonny) умеют запускать код "внутри себя". Но это требует некоторой настройки этой среды.
    Вне зависимости от того, в каком редакторе вы пишете текст программы на Python, вы всегда можете запустить её в консоли (на Маке — в терминале) при помощи команды вида
    "путь_к_python.exe\python.exe путь_к_вашему_файлу_с_программой\ваш_файл_с_программой"
    Например, так:

    c:\Python37\python.exe c:\prog\01-int\G.py

    Если вы сможете настроить пути для запуска Python из текущей папки, где находится ваша программа запускать можно будет так (c:\prog\01-int> это, например, текущий каталог, где находится файл G.py с программой):

    c:\prog\01-int>python G.py

    Личные инструменты
    Пространства имён
    Варианты
    Действия
    Навигация
    Инструменты