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

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

Автор: @physicist_i
Download Telegram
📐 Геометрия и программирование

Заметка о проблемах, с которыми сталкиваются люди при программировании геометрии, тригонометрии, компьютерной графики. Разобрано несколько примеров с реализацией кода на C++.

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

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

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

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

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

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

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

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

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

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

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

#программирование #информатика #pascal #задачи #профилирование
💡 Интересная задачка попалась мне, когда перебирал свои старые черновики

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

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

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

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

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

#математика #программирование #информатика #pascal #delphi
💡 Рубрика: полезные ссылки

Довольно хороший ресурс с большим количеством тестов, которые необходимо выполнить за ограниченное время. Подойдет ученикам, которые занимаются подготовкой к школьной программе, ОГЭ и ЕГЭ. База предметов также большая. Сложность от 3-го до 11-го класса.

🔗 Московский центр качества образования (МЦКО)

Для тренировочного тестирования кликом мышки нужно выбрать интересующий Вас предмет, затем в появившемся окне выбрать вариант теста, после этого можно приступить к тестированию. При тестировании следует иметь в виду, что результаты тестирования будут представлены сразу после завершения тестирования.
#полезные_ссылки #задачи #физика #математика #программирование #информатика #ЕГЭ #ОГЭ
⚙️ Трактат о силе трения: интересные факты, о которых вы боялись спросить

Во многих школьных учебниках, по которым начинают изучать физику в школе, даны несколько «аксиом» (аксиомы указаны в кавычках не просто так) по поводу силы трения:
1. Трение не зависит от площади поверхности.
2. Коэффициент силы трения скольжения (динамического трения) меньше единицы.
3. Сила трения скольжения равна максимальной силе трения покоя.
4. Коэффициент силы трения зависит только от рода соприкасающихся материалов.
Давайте так.. Не всегда, но часто можно встретить такие тезисы. И проблема в том, что абстрактно это вроде всё верно. Но как всегда есть парочка «NO». И в этой статье мы с вами разберем много интересного...

✏️ Читать статью

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

💡 Репетитор IT mentor
👨🏻‍💻 Задание 8 из ЕГЭ по информатике: решать аналитически или кодить?

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

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

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

💡 Репетитор IT mentor // @mentor_it
👀 Новая вариация задания #6 из ОГЭ по информатике — разбор с параметром 🅰️

Разберем 6-ое задание из ОГЭ по информатике. Новая вариант этого задания немного смущает учащихся 9-го класса из-за появления параметра, который нужно изменять и думать, что будет происходить при данном изменении.

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

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

💡 Репетитор IT mentor // @mentor_it
🤯 Оптимизации до одного цикла — непонятная задача по информатике

Сегодня будет что-то очень странное. Короткая, но интересная заметка, непонятное условие, школьные интриги, репетиторское расследование, расчехление экстрасенсорных навыков при попытках угадать «Что хочет препод?». Я уже не так давно разбирал задачу 15.1 из ОГЭ по информатике. Там была лестница, с которой у многих ребят возникали трудности. Но сегодня будет еще больший треш-кринж-омагад...

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

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

💡 Репетитор IT mentor // @mentor_it
Задача 15.2 из ОГЭ: Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 4. Программа получает на вход количество чисел в последовательности, а затем сами числа. В последовательности всегда имеется число, оканчивающееся на 4. Количество чисел не превышает 1000. Введенные числа не превышают 30 000. Программа должна вывести одно число  — минимальное число, оканчивающееся на 4.

👩‍💻 Задачу можно решить и в пару строк, но здесь уже сильно снизится понимание. Покажу пример:

N = int(input("Введите количество чисел: "))
print("Ответ: ", min([ x for x in [int(input("x = ")) for x in range(N)] if x % 10 == 4 ]))


👩‍💻 Цикл for дает лучшее понимание:
N = int(input("Введите количество чисел:"))
mi = 30000
for k in range(N):
number = int(input("Текущее число: "))
if (number % 10 == 4) and (number < mi):
mi = number
print("Минимальное число, оканч-ся на 4: ", mi)


👩‍💻 Но самый оптимальный и понятный код получается с помощью цикла while, которые дает возможности тонкой настройки цикла, что иногда нужно, если наперед не задано точное количество итераций:
N = int(input("Введите количество чисел: "))
min_4 = 30000
k = 1
while k <= N:
number = int(input("Текущее число: "))
if (number % 10 == 4) and (number < min_4):
min_4 = number
k = k + 1
print("Минимальное число, оканч-ся на 4: ", min_4)


#информатика #программирование #computer_science #алгоритмы #python

💡 Репетитор IT mentor // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Тип 5. У исполнителя Альфа две команды. которым присвоены номера:
1. Вычти b;
2. Умножь на 5.
(b  — неизвестное натуральное число).
Выполняя первую из них, Альфа уменьшает число на экране на b, а выполняя вторую, умножает это число на 5. Программа для исполнителя Альфа  — это последовательность номеров команд. Известно, что программа 21121 переводит число 2  в число 17. Определите значение b.


🖥 Решение:

Всегда с учениками решали эту задачу аналитически (так вроде быстрее). Но на последнем занятии я подумал, а если алгоритм будет сложный, можно ли написать что-то универсальное? Например, программу, которую можно будет масштабировать до любого количества инструкций любой сложности... И вот пришла такая идея:

def f1(x, b): return x - b
def f2(x): return 5*x

def solution(N, program):
list_digits = list(program)
for b in range(1, 1000):
res = N
for char in list_digits:
if char == '1': res = f1(res, b)
if char == '2': res = f2(res)
if res == 17:
print("b = ", b)
break
N = 2
program = '21121'
solution(N, program)


#информатика #программирование #computer_science #алгоритмы #python

💡 Репетитор IT mentor // @mentor_it
Please open Telegram to view this post
VIEW IN TELEGRAM
📝 Замечаю, что когда 9-ти-классники начинают готовиться с нуля к экзамену по информатике, то первая задача, которая их пугает — это задача типа 3. Здесь я всегда предлагаю построить ассоциации с обычной алгебраической системой, убрать все отрицания или двойные отрицания [для зрительного упрощения] и просто выписать несколько первых элементов множества значений X.

В крайнем случае — задачу можно забрутфорсить с помощью Python. #информатика #огэ #егэ #программирование #алгоритмы #разбор_задач

💡 Репетитор IT mentor // @mentor_it
⚙️ Трактат о силе трения: интересные факты, о которых вы боялись спросить

Во многих школьных учебниках, по которым начинают изучать физику в школе, даны несколько «аксиом» (аксиомы указаны в кавычках не просто так) по поводу силы трения:
1. Трение не зависит от площади поверхности.
2. Коэффициент силы трения скольжения (динамического трения) меньше единицы.
3. Сила трения скольжения равна максимальной силе трения покоя.
4. Коэффициент силы трения зависит только от рода соприкасающихся материалов.
Давайте так.. Не всегда, но часто можно встретить такие тезисы. И проблема в том, что абстрактно это вроде всё верно. Но как всегда есть парочка «NO». И в этой статье мы с вами разберем много интересного...

✏️ Читать статью

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

💡 Репетитор IT mentor
// @mentor_it