mentor_it | Unsorted

Telegram-канал mentor_it - Репетитор IT mentor

11541

Блог с заметками репетитора по математике, физике, информатике. Рассказываю о задачах, о способах их решения. vk.com/itmentor dzen.ru/itmentor https://www.youtube.com/@it_men Автор: @physicist_i

Subscribe to a channel

Репетитор IT mentor

⚖️ Несмотря на высокую популярность этого мифа, Архимед, скорее всего, не погружал «золотую» корону в ванную, наполненную до краев, чтобы определить объем короны, а следовательно плотность и чистоту сплава.

Архимед изобрел примитивную форму гидростатических весов. Тогда плотность вещества он мог найти двумя способами.
Оба способа с математическим выводом формул рассмотрены здесь...

✏️ Подробно рассказываю в этой статье

Советую подписаться, в своем блоге на Дзен выпускаю очень много интересных статей: наука, физика, математика, IT, железо, технообзоры.
#математика #физика #геометрия #physics #разбор_задач

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

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

Репетитор IT mentor

📱 Анимация параметрической кривой в 3D декартовой системе координат с помощью Python:

# импортируем пакеты
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import animation

# Временной массив
t = np.linspace(0, 60, 500)

# Позиционные массивы и данные для них
x0 = 0
y0 = 0
z0 = -20
R = 10
a = 1
h = 1
x = x0 + R * np.cos(0.1*a*t) * np.cos(2*a*t)
y = y0 + R * np.cos(0.1*a*t) * np.sin(2*a*t)
z = z0 + h * t

# Задаем набор данных для анимации
dataSet = np.array([x, y, z]) # комбинирум наши позицонные координаты
numDataPoints = len(t)

def animate_func(num):
ax.clear() # очищаем фигуру для обновления линии, точки, заголовка и осей

# Обновление линии траектории
ax.plot3D( dataSet[0, :num + 1], dataSet[1, :num + 1], dataSet[2, :num + 1], c = 'blue')

# Обновляем локацию точки
ax.scatter(dataSet[0, num], dataSet[1, num], dataSet[2, num], c = 'blue', marker = 'o')

# Добавляем постоянную начальную точку
ax.plot3D(dataSet[0, 0], dataSet[1, 0], dataSet[2, 0], c = 'blue', marker = 'o')

# Задаем пределы для осей
ax.set_xlim3d([-20, 20])
ax.set_ylim3d([-20, 20])
ax.set_zlim3d([-20, 20])

# Добавляем метки
ax.set_title('Траектория: время: ' + str(np.round(t[num], decimals = 2)) + ' сек')

fig = plt.figure() # создаем объект
ax = plt.axes(projection = '3d')
line_ani = animation.FuncAnimation( fig, animate_func, interval = 100, frames = numDataPoints)

plt.show() # включить показ графики, отображения созданных объектов

# Сохранить анимацию
f = r"animation.gif"
writergif = animation.PillowWriter(fps = numDataPoints/6)
line_ani.save(f, writer = writergif)


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

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

Репетитор IT mentor

🎲 Задача из ЕГЭ по информатике: математика, статистика, код

Разбирал со своими учениками очередной ЕГЭ тест и наткнулся на задачу, с помощью которой можно потренировать как аналитические способности алгоритмического мышления, так и навыки программирования с помощью численного решения. А ещё по ходу дела вспомнить математическую статистику и логику. Готовы? Тогда приятного чтения...

📝 Читать разбор задачи

А какая у вас самая нелюбимая задача из ЕГЭ по информатике?

#математика #статистика #math #математическая_статистика #itmentor #егэ #разбор_задач #информатика #программирование

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

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

Репетитор IT mentor

💻 Один из самых странных ноутбуков Asus: несколько сюрпризов внутри 🖥

В предыдущем посте я уже писал, что мне дали два ноутбука на ускорение. И если с первым Lenovo B590 всё прошло хорошо, то второй вариант оказался настолько «интересный», что я решил заснять про него небольшое видео. Итак, мы имеем старенький ноутбук Asus R540S, который совсем отказывался работать, даже курсор двигался рывками, а приложения включались очень долго. Но при детальном рассмотрении данного аппарата, ситуация оказалась куда сложнее, чем я ожидал...

📱 Смотреть видео на Дзен

📱 Смотреть видео на YouTube

#hardware #железо #техника #ноутбуки

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

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

Репетитор IT mentor

🎮 Дан равнобедренный остроугольный треугольник. Известно, что вписанной в него окружности равен радиусу окружности, касающейся боковой стороны треугольника и описанной около него окружности. Найти угол при вершине треугольника.

Попалось вот такая интересная задача по геометрии из нашего физико-математического чата (не из ЕГЭ). Первоначальная сложность задачи заключается в том, чтобы понять как же правильно всё это дело нарисовать. Затем возникает вопрос как связать нужными формулами все неизвестных значения. Как всегда существует несколько способов решения (через подобие треугольников с дополнительным построением, координатный метод, метод выражения через тригонометрию). Я решил остановиться на последнем методе, так как мне он показался наиболее понятным. Суть в том, чтобы связать угол с отрезком, который можно выразить через отношение радиусов r и R из условия. А потом из общих соображений для равнобедренного треугольника найти r и R, а потом посчитать их отношение. Приравнять эти отношения и получить тригонометрическое уравнение, решая которое, можно дойти до угла при вершине.

📝 Более подробное решение задачи в прикрепленном pdf-файле.

Если вы придумали более легкий способ решение этой задачки, то напишите в комментарии под данным постом, буду рад почитать. #математика #геометрия #math #geometry #itmentor #егэ #огэ #itmentor #алгебра

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

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

Репетитор IT mentor

💡Найти площадь закрашенной фигуры: олимпиадная задача по геометрии (для школьников)

Дан квадрат. В квадрате есть точка с неизвестными координатами. Эта точка соединена отрезками с серединами всех сторон квадрата. Найти площадь закрашенной области (четырехугольника), если площади других области равны 16, 20 и 32 квадратных сантиметра.

✏️ Полный разбор задачи

#разбор_задач #геометрия #математика #олимпиады

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

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

Репетитор IT mentor

Сможете решить эту задачу по геометрии?

В этой заметке у нас будет немного геометрии. Листал я интернет и на глаза попалась такая задача, где был дан рисунок, на котором всё отмечено, и нужно было найти угол. В абсолютно произвольном треугольнике.. Ещё из интересного в интернете был такой факт, что эта задача из Турции (откуда точно - не знаю).

Посмотрите сначала на рисунок, на нём всё есть. На этом моменте предлагаю вам остановиться, взять в руки черновик и подумать самостоятельно, прежде чем листать дальше...

📝 Читать разбор задачи

Дан произвольный треугольник △ABC. Сторона AB = 6. Из вершины B к стороне AC опущена высота BH. Прямая CK (K ∈ AB) пересекает высоту BH в точке O таким образом, что CO = 6, BO = 3, а ∠KOB в два раза больше угла ∠ABH. Найти угол ∠A - ?

#разборы_задач #олимпиады #математика #геометрия #math #geometry

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

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

Репетитор IT mentor

💡 Задача по физике: попались школьники, учителя, репетиторы

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

✏️ Читать полностью

Задача связана с натяжением нити математического маятника. И так как она вызвала серьезные затруднения у всех моих учеников, а также трудности возникли у коллег, то я решил подробно разобрать эту задачу. #разборы_задач #физика #ЕГЭ #олимпиады

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

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

Репетитор IT mentor

🔥 Эта задача по геометрии ломает мозг 🤯

Сегодня один из участников нашего физ-мат telegram-канала Physics.Math.Code предложил интересную задачу. В итоге подвис наш Техночат в размышлениях над ней. Но в итоге решение было найдено. Кто-то пробовал решать задачу через нейросеть или интуицию. Получали ответы в 30°, 75° и 120°. Чуть позже, когда в чате сделали подробные рисунки, мы поняли, что там точно получается прямой угол, но как это доказать... Первое, что мне пришло на ум, так это попробовать результаты теоремы косинусов для треугольников ADP и PEC, чтобы потом их объединить в проверке теоремы Пифагора для треугольника DPE, но это не увенчалось успехом... А сейчас рассмотрим как надо было.

📝 Читать разбор и решение 📝

📐 Дан произвольный треугольник △ABC. Угол ∠ABC равен 120° градусам. D принадлежит стороне AB. Е принадлежит стороне BC. AD = DE = EC. Точка P - середина основания AC. AP = PC. Найти угол ∠DPE.

#разборы_задач #олимпиады #математика #геометрия #math #geometry

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

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

Репетитор IT mentor

🔣 Задача по программированию для подписчиков 👨🏻‍💻

Дано игровое поле, которое задано матрицей m x n, где каждая ячейка представляет собой клетку корабля «X» или пустую клетку «.».

Необходимо найти количество всех кораблей на игровом поле.

Примечания:
▪️ Корабли можно размещать на игровом поле только горизонтально или вертикально
▪️ Два корабля разделяет по крайней мере 1 горизонтальная или вертикальная клетка.

📝 Обсуждение задачи здесь 📝

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

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

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

Репетитор IT mentor

📉 Экономика: разбор типовых задач

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

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

#разбор_задач #экономика #математика

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

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

Репетитор IT mentor

💡 Почему поднять предмет быстро тяжелее, чем поднять медленно?

Друзья, привет! Разбираемся с подвохами физики из раздела механики. Подготавливая своих учеников к ЕГЭ и ОГЭ, я заметил, что многие школьники путаются в задаче нахождения работы, когда движение равноускорено (a = const, v ≠ const). Рассмотрим типичную задачу, решение которой поможет пролить немного света на эту тёмную сторону физики :)

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

#разбор_задач #механика #физика #огэ #егэ #факты #задачи #physics

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

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

Репетитор IT mentor

🖥 Помните предыдущие два поста про примитивные callback-функции и фильтрующие функции? Может возникнуть вопрос, а можно ли, реализовать свой аналог reduce() ?

Давайте сразу напишем такой пример:

numbers = [1, 11, 12, 13, 18, 9, 8, 6]

from functools import reduce

func = lambda acc, cur : acc + cur

total = reduce(func, numbers, 0)
print('Встроенная reduce: ',total)

def _reduce(callback, collection, init = 0):
acc = init
for k in collection:
acc = callback(acc, k)
return acc

_total = _reduce(func, numbers)
print('Моя reduce: ',_total)


Теперь объясним параметры и работу конструкции:
result = reduce( function, iterable[, initializer] ) :
▫️function — функция, применяемая к элементам итерации. Она должна принимать два аргумента.
▫️iterable — итерируемый объект, элементы которого вы хотите уменьшить. Это может быть список, кортеж или любой другой итерируемый объект.
▫️initializer — (необязательно): начальное значение аккумулятора (накопителя). Оно используется в качестве первого аргумента при первом вызове функции, если оно предусмотрено.

⚠️ Обработка пустых итераций: Одной из распространенных ошибок при использовании функции reduce() является обработка пустых итераций. Передача пустой итерации в reduce() без инициализатора вызывает Ошибку типа поскольку нет начального значения для запуска процесса сокращения. Чтобы избежать этого, всегда указывайте инициализатор, когда итерируемый объект может быть пустым.

⚙️ Производительность:
▫️ Эффективность reduce() по сравнению с циклами: Функция reduce() может быть более эффективной, чем явные циклы, потому что она реализована на C, что может обеспечить преимущества в производительности. Однако это преимущество часто незначительно и зависит от сложности применяемой функции.
▫️Преимущества использования встроенных функций в производительности: Встроенные функции, такие как sum(), min(), и max() высоко оптимизированы с точки зрения производительности. Они реализованы на C и могут выполнять операции быстрее, чем эквивалентный код Python с использованием reduce().

🖥 Зачем разработчикам нужна функция reduce() ? Функция reduce() полезна при итеративной обработке данных, избегая явных циклов и делая код более читаемым и кратким. Некоторые распространенные варианты использования включают:
▫️ Суммирование чисел в списке: Быстрое суммирование всех элементов.
▫️ Умножение элементов итеративного элемента: Вычисление произведения элементов.
▫️ Объединение строк: Объединение нескольких строк в одну.
▫️ Нахождение максимального или минимального значения: Определение самого большого или самого маленького элемента в последовательности.

#python #разработка #программирование #IT #алгоритмы

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

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

Репетитор IT mentor

📝 in 🖥 О лямбда-функциях в Python

▪️ Когда нужно быстро сделать анонимную функцию, которую удобно передавать в другие функции высшего порядка, используются лямбда-функии, которые имеют синтаксис: Lambda аргументы : выражение
Лямбда-функции могут иметь любое количество аргументов, но у каждой может быть только одно выражение. Выражение вычисляется и возвращается. Эти функции могут быть использованы везде, где требуется объект-функция. Лямбда-функцию можно пустить в качестве аргумента другие функции, которые обрабатывают крупные структуры данных: списки, словари, объекты. Синтаксически лямбда-функция ограничена, позволяет представить всего одно выражение.

▪️ Функция filter() в Python принимает в качестве аргументов функцию и список . Функция вызывается со всеми элементами в списке, и в результате возвращается новый список, содержащий элементы, для которых функция возвращает результат True. Мы напишем пример использования функции filter() для отбора четных чисел из списка.

▪️ Функция map() принимает в качестве аргументов функцию и список. Функция вызывается со всеми элементами в списке, и в результате возвращается новый список, содержащий элементы, возвращенные данной функцией для каждого исходного элемента.
Ниже пример использования функции map() для возведения в квадрат всех элементов списка.

▪️ Функция reduce() принимает на вход три параметра — функцию-обработчик, коллекцию и начальное значение аккумулятора. Этот же аккумулятор возвращается наружу в качестве результата всей операции. Функция вызывается с помощью лямбда-функции и итерируемого объекта и возвращается новый уменьшенный результат (свертка). Так выполняется повторяющаяся операцию над парами итерируемых объектов. Функция reduce() входит в состав модуля functools. Да, эта функция самая сложная для понимания. По своей сути функция reduce() нужная для агрегации (лат. aggregatio «присоединение») элементов в результат-ответ. Функция, передаваемая в reduce()— самая важная часть и ключ к пониманию работы всего механизма агрегации. Она принимает на вход два значения. Первое — текущее значение аккумулятора, второе — текущий обрабатываемый элемент. Задача функции — вернуть новое значение аккумулятора. reduce() никак не анализирует содержимое аккумулятора. Всё, что она делает, передаёт его в каждый новый вызов до тех пор, пока не будет обработана вся коллекция, и в конце концов вернёт его наружу.

📱 А теперь примеры кода:

# Различие между обычной функцией и лямбда-функцией
def defined_square(x):
return x*x

lambda_square = lambda x : x**2

print(defined_square(16)) # 256
print(lambda_square(16)) # 256

# Применение лямбда-функции к функциям высш.порядка
numbers = [1, 11, 12, 13, 18, 9, 8, 6]

# Лямбда-функции и filter()
new_list = list(filter(lambda x: x % 2, numbers))
print(new_list) # [1, 11, 13, 9]

# Лямбда-функции и map()
new_list = list(map(lambda x: x**2, numbers))
print(new_list) # [1, 121, 144, 169, 324, 81, 64, 36]

# Лямбда-функции и reduce()
from functools import reduce
total = reduce(lambda acc, cur : acc + cur, numbers)
print(total) #1 + 11 + 12 + 13 + 18 + 9 + 8 + 6 = 78

users = [
{ 'name': 'Igor', 'amount': 19 },
{ 'name': 'Danil', 'amount': 1 },
{ 'name': 'Ivan', 'amount': 4 },
{ 'name': 'Matvey', 'amount': 16 },
]

total = reduce(lambda acc, user: acc + user['amount'], users, 0)
# user: Igor, acc = 0, return value 0 + 19
# user: Danil, acc = 19, return value 19 + 1
# user: Ivan, acc = 20, return value 20 + 4
# user: Matvey, acc = 24, return value 24 + 16
print(total) # 40


🔹 Функция reduce в Python
🔹 Агрегация reduce() - свертка
🔹
Лямбда-функция в Python простыми словами

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

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

Репетитор IT mentor

⚡️ Почему скачок силы тока не бывает резким в RL-цепи ?

Соскучились по электричеству и магнетизму, друзья? :) В этой статье мы максимально подробно разберем типичную задачу на RL-цепи. Такие задачи начинают проходить в 11-м классе в физико-математических лицеях, а затем возвращаются к ним в университете примерно на 2-м курсе физ-мата. Но в чем же особенность этих задач? Во-первых, большинство не понимает как их решать. Во-вторых...

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

#электродинамика #физика #электричество #магнетизм #разбор_задач

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

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

Репетитор IT mentor

🐸 Забавная задача по теории вероятностей 🐸

Какой будет ответ? ☺️ Обсуждение здесь 📝

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

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

Репетитор IT mentor

♾️ Задача по математике для женщин: какая площадь у восьмерки?

Сегодня в честь праздника предлагаю вам подумать над такой вот задачкой уровня 1-2 курса. Полярную систему координат проходят еще в некоторых школах (физико-математических). Но более сложные задачи начинают решать с 1-го курса университета. Давайте вспоминать математику.

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

💡 Праздничная задача для женской половины подписчиков моего канала: Найти площадь закрашенной восьмерки, изображенной на превью.
#математика #геометрия #физика #олипиады #математический_анализ #разбор_задач

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

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

Репетитор IT mentor

📝 Подборка заметок по теме: Электричество и магнетизм

В этой подборке я собрал для вас самые интересные заметки с разборами задач по теме электричества и магнетизма. В этих заметках я постарался подробно рассказать о самых типовых подвохах, которые возникают на начальном этапе изучения этого сложного раздела физики — Электродинамика, электричество, магнетизм:

⛓️ Метод контурных токов: как решать типичные задачи?

🚦
О физике вокруг нас... 〰️

💡
Опыты с лампочкой — выполняется ли закон Ома на практике?

⚡️ Разбор 4 классических задач по ТОЭ

⚡️ Как определить силу тока в пучке медленных электронов?

📝 Как правильно понять какой знак неравенства будет в задаче по физике?

🧩 3 задачи по электричеству из ОГЭ

🫖 Рассчитал КПД электрического чайника. Результат меня удивил...

〰️ Почему скачок силы тока не бывает резким в RL-цепи ?

💡 Есть две лампочки в последовательной цепи: какая горит ярче?

🧲 Интересная задачка по электродинамике на размыкание RLC-цепи

🔌 В течение какой доли период лампа горит ?

📡 Задача про радиолокатор: как найти минимальную и максимальную дальность обнаружения цели ?

🕹 Задача по электричеству, которую должен решать каждый 7-классник

🔋 Пример решения задачи на законы Кирхгофа

🔋 Зарядка и разрядка конденсатора через резистивный делитель

💫 Разгон электрона в электрическом поле и фотоэффект

💡 Электродинамика диэлектрического шара: напряженность поля и потенциал

🔩 Что такое шунтирование резистора и как это влияет на ток ?

🔧 Задача по физике за 8 класс, в которой ошибаются учащиеся 11 класса

⚖️ Разбор 31 задачи из ЕГЭ по физике: математический маятник в электрическом поле

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

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

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

Репетитор IT mentor

💻 Пару дней назад мой хороший знакомый дал мне два стареньких ноутбука с пожеланием «ускорить».

▪️ Lenovo B590. Это оказалась неплохая машинка с возможность апргрейда: можно заменить 2.5'' накопитель, есть место для маленького SSD m2 (скорее всего B-ключ(!)), два слота под оперативную память и съемный процессор. На удивление у меня дома осталась плашка на 4 Гб оперативной памяти Samsung, которая по характеристикам совпадала с уже имеющейся в одном из слотов RAM. Получилось 8 Гб DDR3. В качестве накопителя на замену старому HDD (из-за которого и были жуткие тормоза) пошел Apacer AS350X (560 Мбайт/сек, запись - 540 Мбайт/сек, 3D NAND). Ну и ноутбук задышал нормально, уже можно использовать для работы. По ходу дела столкнулся с такой проблемой, что загрузочную флешку с OS нужно делать по старому стандарту размещения таблицы разделов MBR. Об MBR и GPT. Поэтому переделал флешку через Rufus.

▪️ Asus R540S. А вот второй ноутбук не порадовал своей модульностью. Вообще, я не понимаю как можно было выпустить этот мертворожденный девайс. Самая главная проблема: 2 Гб распаянной на плате RAM, которую не расширить, не заменить. Плюс слабый процессор. И, честно говоря, я даже не знаю поможет ли SSD и выделение большего объема файла подкачки... Как вы считаете?

#hardware #железо #техника #ноутбуки

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

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

Репетитор IT mentor

Красная граница фотоэффекта — это минимальная частота, или соответствующая длинна волны, при которой начинается фотоэффект. Здесь нужно внимательно посмотреть на уравнение Эйнштейна и понять, что для нашего случая энергии кванта с такой длиной волны хватит только на то, чтобы выбить электрон из металла, но не придать ему никакой более энергии.

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

Далее нужно немного вспомнить кинематику. Нам понадобится связь между конечной и начальной скоростью через ускорение и время движение. Также нам понадобится знание закона движение материальной точки при постоянном ускорении. Теперь остается всё собрать в кучу и подсчитать ответ.

Конечная скорость является довольно большой, но не настолько, чтобы нужно было учитывать релятивизм.
#разбор_задач #задачи #физика #электродинамика

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

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

Репетитор IT mentor

📐 Предыдущую задачу по геометрии можно было бы и разобрать через проекции сторон треугольника на высоту (приравнивание высоты, выраженной из двух разных подходов)

⚠️ Единственное, что нужно помнить, так это обоснование того, что угол один. По-хорошему это нужно доказать. Приведу краткое решение, а обоснование единственности решения оставляю вам на подумать.

#разборы_задач #олимпиады #математика #геометрия #math #geometry

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

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

Репетитор IT mentor

👨🏻‍💻 Задача по программированию

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

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

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

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

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

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

#программирование #информатика #pascal #задачи #профилирование

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

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

Репетитор IT mentor

🐍 Циклы и их прерывания в Python: алгоритм поиска в строке

Это заметка будет для начинающих, которые только знакомятся с программированием, информатикой и с языком Python, в частности. Вчера мы с учеником изучали циклы и некоторые операторы, которые дают возможность управлять циклами. В этой небольшой статье я покажу несколько примеров. При этом от совсем простых абстракций постараемся углубиться в более полезные вещи с практической точки зрения. [ Уровень сложности: ~7..8 класс ]

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

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

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

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

Репетитор IT mentor

💡 Как перенести названия всех файлов текущей директории в текстовый файл .txt в Python?

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

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

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

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

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

Репетитор IT mentor

💬 Приглашаю к обсуждению интересной задачи, скрывающей под собой не только красивые мотивационные речи блогеров, но и математику, не менее интригующую...

➡️ Задача и её обсуждение: /channel/maths_lib/2173

#разбор_задач #статистика #математическая_статистика #теория_вероятностей #математика

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

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

Репетитор IT mentor

♾️ О полярных координатах и нахождении площади в полярной системе координат 💡

Задача 1. Найти площадь, ограниченную кривыми, заданными в полярной системе координат: r = 1 - cos(φ) ; r = 1; r ⩾ 1

Задача 2. Найти площадь фигуры, ограниченной "трехлепестковой розой" r = a ⋅ cos(3φ).

Задача 3. Если плоская фигура имеет "сложную" форму, то как её разбивать в полярной системе?

Задача 4. Вычислить площадь фигуры, ограниченной линией r = 2 cos²(φ)

Задача 5. Вычислить площадь фигуры, ограниченной линиями r = -2⋅sin(3φ) и r = 2⋅sin(φ) в полярной системе координат.

Задача 6. Вычислить площадь фигуры, ограниченной r = √3⋅cos(φ) и r = sin(φ) в полярной системе координат.

〰️ Разбор и решение всех задач в статье ➰

#математика #разбор_задач #задачи #математически_анализ #интегрирование

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

Репетитор IT mentor

В этой заметке рассмотрим задачу с реального собеседования на Python-разработчика

Мы уже ознакомились с lambda-функциями и где они используются. Сейчас же исследуем вырванный из контекста реальный код и задания к нему.

🖥 Исходный код:

def get_first_matching_object(predicate,objects=[]):
matching_objects = (obj for obj in objects if predicate(obj))
if matching_objects:
object = matching_objects[0]
return object
return None

print(get_first_matching_object(lambda x: x == 1, [2, 3, 4]))


▪️ Что не так с кодом ? Если мы запустим в таком виде, то получим TypeError: 'generator' object is not subscriptable. Это означает, что объект-генератор matching_objects представляет собой итератор: он генерирует значения в том порядке, в котором они запрашиваются циклом for или вызовом next(matching_objects). Однако, дальше по коду пытаются получить доступ по индексу так, как будто это список или любой другой Sequence-тип, который позволяет получать доступ к произвольным k-м элементам через matching_objects[k]. Если мы хотим, чтобы всё работало, нам нужно преобразовать в список list() или закрыть генератор в квадратные скобки: matching_objects = [obj for obj in objects if predicate(obj)]

▪️ Что код делает ? Есть некоторая функция, которая принимает в себя callback-функцию predicate и набор объектов (пустой по дефолту). Далее у нас как-то формируется список помеченных объектов, которые попадают в новый список только в том случае, если callback-функция возвращает для них True. Следующая конструкция говорит нам о том, что если полученный список matching_objects не пустой, то мы выделяем первый входящий в него объект и возвращаем его. В противном случае возвращается None. Но последняя строчка не является обязательной. Потому что, в случае НЕсрабатывания условного оператора, у нас итак вернется None.

▪️ Что выведет на экран, если его исправить? Судя по тестовым параметрам, переданная lambda-функция ни на одном из элементов объекта [2, 3, 4] не вернет True. Поэтому список matching_objects окажется пустым, в итоге нам вернется None.

▪️ Функция оптимизирована? Нет. Дело в том, что она перебирает все остальные элементы (тратит память и время выполнения), когда мы можем ограничиться рассмотрением первого подходящего. Тогда код можно исправить так:
def get_first_matching_object(predicate,objects=[]):
for obj in objects:
if predicate(obj):
return obj
return None

print(get_first_matching_object(lambda x: x == 1, [1, 2, 3, 4])) # 1

▪️ Какая сложность выполнения данной функции? В худшем случае: O(n) ; в лучшем случае : O(1).

#python #разработка #программирование #IT #алгоритмы

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

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

Репетитор IT mentor

🖥 Callback в Python — это функция, которая передаётся на вход другой функции (или другому участку кода), чтобы её запустили в ответ на какое-то событие.

Callback-функции делают код Python более гибким и модульным. Они позволяют создавать функции, которые могут выполнять разные действия в зависимости от переданной им callback-функции.

Пример использования callback в Python:

def calculate(func, x, y):
result = func(x, y)
print(result)

def add(x, y):
return x + y

def multiply(x, y):
return x * y

calculate(add, 2, 3) # выведет 5
calculate(multiply, 2, 3) # выведет 6


В этом примере функция calculate принимает функцию в качестве первого аргумента, а также два параметра x и y. Затем функция calculate вызывает переданную функцию и передаёт ей x и y в качестве аргументов. Результат затем выводится на консоль. Функции add и multiply определены отдельно и переданы как callback-функции функции calculate, которая затем вызывает их соответствующим образом.

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

🚀 Некоторые преимущества callback-функций:
▫️Гибкость и расширяемость. Код становится более модульным и гибким. Можно легко изменять поведение функции, передавая ей разные callback-функции.
▫️Асинхронность. Callback-функции часто используются в асинхронном программировании, где выполнение кода не обязательно происходит последовательно. Например, при обработке событий, сетевых запросов или операций ввода/вывода.
▫️Обработка событий. Callback-функции позволяют реагировать на определённые события, такие как нажатие кнопки, получение данных из сети или завершение длительной операции.

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

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

Репетитор IT mentor

🔤 Олимпиадное неравенство и интересное решение

Привет, друзья! Сегодня продолжим тему олимпиадных задач по математике. Особенность таких задач в том, что их можно решить нетривиальным, ну или как минимум, не часто встречающимся способом. И вот такие способы отлично подчеркивают красоту математики. Кстати, будет очень здорово, если кто-нибудь из подписчиков предложит другой способ решения данной задачи. И да, речь сегодня пойдет о неравенствах.

Доказать неравенство:
|a³ + b³ + c³ - 3•a•b•c| ⩽ (a² + b²+ c²)^(3/2) где a, b, c ∈ ℝ

📝 Читать разбор задачи

#математика #алгебра #олимпиады #разбор_задач #аналитическая_геометрия #линейная_алгебра

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

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

Репетитор IT mentor

➰ 15 топологических головоломок из проволоки на расщепление

📺 Смотреть видео

#топология #математика #геометрия #обзор #логика

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

Читать полностью…
Subscribe to a channel