Репетитор IT mentor
10.1K subscribers
837 photos
10 videos
29 files
689 links
Блог с заметками репетитора по математике, физике, информатике. Рассказываю о задачах, о способах их решения.

vk.com/itmentor
dzen.ru/itmentor
https://www.youtube.com/@it_men

Автор: @physicist_i
Download Telegram
💡 Интересная задачка попалась мне, когда перебирал свои старые черновики

Есть шахматное поле n на n. На поле m ладей. Нужно определить какое число клеток не заняты и не находятся под боем.

Мне стало интересно сделать визуализацию решения, чтобы можно было легко посчитать пальцем число свободных клеток, тем самым проверить правильность работы программы. На вход программы подается матрица [8][8], в которой цифрой "1" отмечены места, в которых стоят ладьи. По этой матрице строится другая матрица, в которой "0" отмечаются свободные поля, а клетки, которые находятся под ударом отмечаются FLAG_ATTACK = -1. По матрице позиций под атакой рисуются красные клетки, иллюстрирующие запрещенные ходы.

Остальная доска рисуется алгоритмом, который переключает цвета с помощью деления по модулю 2. ( 0 - белый цвет, 1 - серый ). Плюс для компактности я решил использовать сквозной индекс по двумерному массиву. Хотя, вложенных циклов в некоторых местах итак получилось по 4.

Думаю, что графических процедур в программе будет достаточно, чтобы написать какую-нибудь простенькую пиксельную игру типа "змейка" :) Если вам было бы интересно почитать про реализацию змейки или другой пиксельной игры, то напишите об этом в комментариях и проявите какую-то активность.

📝 В данном случае язык реализации был Pascal ( IDE: PascalABC ).
https://pastebin.com/yg5zKEu7

#математика #программирование #информатика #pascal #delphi
👨🏻‍💻 Задача по программированию

Тривиальная задача сравнения метода вычисления факториал с помощью цикла и метода вычисления факториала с помощью рекурсии. Берется некоторое число n, для которого вычисляем факториал разными способами. Вычисления засовываем в цикл с 1000 итераций, чтобы снизить погрешность. Засекаем время с помощью метода Milliseconds() (библиотека Utils). Выводим результаты. В большинстве случаев рекурсия выполняется быстрее. Предлагаю обсудить, почему так происходит?
[ Язык реализации: Pascal ]

Обсуждение задачи:
vk.com/wall-51126445_30047
📝 Полный код: https://pastebin.com/UzPkbXDa

Были еще на канале интересные статьи по этой теме:

▪️ Что работает быстрее: цикл или рекурсия? Измеряем производительность

▪️ 🐍 Разбираем циклы в Python на простых примерах. Какой цикл быстрее?

▪️ Как ускорить выполнение цикла? Алгоритм оптимизации циклов

#программирование #информатика #pascal #задачи #профилирование
⚙️ О способе вычисления корней n-ой степени 🌱

Наткнулся на интересную задачку. Решил реализовать алгоритм вычисления корня n-ой степени из произвольного положительного числа. Уже приводил возможную реализацию для нахождения квадратного корня. Но в этом случае решение получается более обобщенным. Это первый рабочий алгоритм, написанный на коленке. Нужно еще поразмышлять о сложности и возможностях ускорения.

В данном решении я использую идею относительно неплохого начального приближения. Затем последовательным делением находится второе приближение корня n-ой степени. Далее считается новое приближение с помощью усреднение двух текущих. Последовательно алгоритм сходится к нужному корню с наперед заданной погрешностью. Это немного похоже на метод последовательной релаксации ( численные методы решения ).

📝 Код программы 📄
https://pastebin.com/ztnz7g2E
https://ideone.com/OUEzGA

#программирование #математика #информатика #численные_методы
Задача по программированию на Python

▪️ 1 способ:
Зеркальное отображение числа так как будто это число.
Плюсы: работа с числами всегда быстрее
Минусы: в случае окончания числа на 0 получается не совсем верное отображение( Пример: 560 —> 65 )

▪️ 2 способ:
Работа с числом как со строкой. Создается новая строка и с помощью конкатенации к ней присоединяются все символы исходной строки, начиная с конца. Отображает зеркально все символы.
( Пример: 560 —> 065 ). Остается вопрос: можно ли считать 065 тоже натуральным числом? Нет. Поэтому условие задачи не вполне корректное.

▪️ 3 способ:
Использование срезов для строк. Результат аналогичен второму.

Знаете еще способ? Напишите в комментариях ☺️✏️

#задачи #python #информатика #программирование
👨🏻‍💻 7 задач по информатике и программированию из ЕГЭ: подробный разбор

В данной статье разберем с вами подробное решение типовых задач, с которыми приходится сталкиваться ученикам при подготовке к ЕГЭ по информатике. Эти задания еще долго будут актуальны при подготовке к ЕГЭ. Некоторые задачи, связанные с программированием, я попытался разобрать двумя способами, потому что...

📖 Читать статью полностью

#ОГЭ #ЕГЭ #разбор_задач
#программирование #информатика
📃 17 задача ЕГЭ по информатике - анализ файлов .txt

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

🔍 Читать разбор полностью

💡 Задача: Файл содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Назовём тройкой три идущих подряд элемента последовательности. Определите количество троек чисел таких, которые могут являться сторонами остроугольного треугольника. В ответе запишите два числа: сначала количество найденных троек, а затем  — максимальную сумму элементов таких троек. Если таких троек не найдётся  — следует вывести 0 0.

#математика #геометрия #ЕГЭ
#программирование #информатика #разбор_задач
💡 Как перенести названия всех файлов текущей директории в текстовый файл .txt в Python?

Решил написать небольшой скрипт на Python. Повседневная задача редактора технического канала: Перенести названия всех файлов из нужной директории (задается путем), и записать их в текстовый файл example.txt с добавлением номеров каждого файла. Записать имена в файл с предварительной сортировкой по дате создания (или скачивания). Рассказываю как это реализовать на Python в несколько строк...

👨🏻‍💻 Читать заметку полностью

#python #файлы #информатика
#программирование #OS
👨🏻‍💻 Парсинг Excel-файлов на Python на примере задачи из ЕГЭ по информатике

Сегодня разберем с вами довольное сложное 22 задание. Здесь стоит дать пояснения. Составители ЕГЭ каждый раз выдумывают что-то новое, поэтому никогда не знаешь, что ожидать в следующий раз. Недавно на занятиях с учениками попалась задача, которая не решается обычными формулами, встроенными в Excel (во всяком случае я не знаю, как её автоматизировать средствами ТОЛЬКО Excel). И тут повезло, что таблица была небольшой, поэтому можно было решить задачу руками. Но я сразу же задумался над тем, а что если записей в ней было бы гораздо больше? Что если руками решать было бы не целесообразно, потому что это заняло бы бесконечно большое время, которого нет на экзамене? Как же тогда автоматизировать решение? Об этом мы сегодня с вами и поговорим...

💡 Читать статью полностью

Заваривайте чай, здесь нужно будет посидеть и подумать...☕️🫖

#парсинг #excel #python #ЕГЭ
#программирование #информатика #анализ_данных #разбор_задач
💬 15.1 и 15.2 – что выбрать в ОГЭ по информатике и как их решать?

Максимум за задачи 15.1 и 15.2 можно получить 2 балла. И учащемуся требуется выполнить только одно задание. Но что же делать ученику на экзамена? На мой взгляд, нужно решать обе задачи. Ведь тогда повышается вероятность забрать 2 балла хотя бы от одной. И ещё вполне может такое быть, первое задание (которое обычно простое) окажется сложным и запутанным. И в таком случае ученику просто придется программировать...

💡 Читать заметку

#алгоритмы #разбор_задач #ОГЭ #ЕГЭ
#программирование #информатика
👨🏻‍💻 Задание 8 из ЕГЭ по информатике: решать аналитически или кодить?

Вчера разбирали проблемные задачи по просьбе моей ученицы. Девушка способная, внимательная и умная. Просто есть страх перед некоторыми задачами. И я её прекрасно понимаю. Потому что во время учебы в школе нам ничего не объясняли, у меня тоже был бы страх перед такими задачами. Этой короткой заметкой я хочу немного успокоить тех ребят, которые боятся даже начинать решать 8 задание по информатике.

📝 Читать заметку полностью

#информатика #программирование #ЕГЭ #разбор_задач #алгоритмы #строки