CodeLab
145 subscribers
538 photos
20 videos
159 links
Говорим просто о сложном

Обсуждение, новости, материал и сплетни — все здесь https://t.me/CodeLabMLChat
Download Telegram
Гоу разберем на ночь еще одно, по моему мнению, классное решение. Я вам до этого кидал такую фотаче, тут можем заметить формулу сумму первых членов. Просто перепишем формулу в виде кода..
Итак, с первой строчкой все ясно, просто подается 3 строки. Затем мы создаем две переменные, отвечающие за максимальную длину одной из 3 трех строчек, и минимальную длину одной из 3 строк. Зачем мы это вообще делаем? Для определения арифметической прогрессии, нам надо знать минимальную, среднюю и максимальную длины строк. Поговорим о 4 строчке, я сначала сам не понял захуем это сделали, но чел из комментов объяснил что "если все 3 числа равны, то это арифметическая прогрессия с шагом 0 (или, как ее еще называют, стационарная арифметическая прогрессия)". Только сейчас я пишу это и понимаю, что сам я бы навряд ли додумался до такого решения, но все мы только учимся. Что касаемо 4 строки кода, Тут значит у нас формула, ее я нашел в комментах и выложу чуть позже.
Всем пака 🫣
У нас есть свойство, суть этого свойства в том, что нам, для нахождения всякого члена арифметической прогрессии, нужно всего лишь найти среднее арифметическое его соседних членов. Я надеюсь, что на данном этапе вы уловили суть: у нас с вами есть три члена арифметической прогрессии, а их средний член будет равен полусумме крайних.
Вот как раз та самая формула. Если вы вдруг нашли ошибку в объяснении или решении, комменты открыты
Ну, и последнее рассматриваемое нами решение этой задачи, как по мне самое адекватное. Первые 5 строчек все окей, затем находим средний член арифметической прогрессии (сумма всех длин минус Максимум минус Минимум). Вспоминаем вот это вот выражение a-b==b-c (Типо сравниваем два числа, СРЕДНЕЕ - МИНИМАЛЬНОЕ и МАКСИМАЛЬНОЕ - СРЕДНЕЕ). Если они равны - прогрессия есть. В первом решении мы рассматривали три перестановки (Меняли среднее - минимальное на еще какую нибудь хейню), а тут мы сразу прописали, что у нас является максимальной и минимальной длиной, ввели средний член арифметической прогрессии и тд
👍3
Там дальше идет объяснение оператора in, мы на данный момент только разобрали метод split() и функцию len() (это касаемо строкового типа данных #str). Я попробую рассказать об этом операторе сам. Сам оператор определяет принадлежность какого это элемента, допустим, строки в последовательности, это может быть список, кортеж, множество или другая строка. #in
👍2
Давайте самое простое, проверка на наличие строки в другой строке. Я вам даю три примера, то как это может выглядеть
👍2
Так, сделаю небольшой пост про продолжение оператора #in, мы с вами говорили про то, что он для проверки наличия элемента(строки) в строке, дак вот также мы можем проверить наличие элемента в списках
1
Есть в конце 6.2 задача легкая, как раз на повторение того, что разобрали раньше. #Корректный_email
👍2
Тут все просто, вводим переменную для ввода и проверяем наличие собаки и точки в нашей строке. А вот дальше нас ждет что-то интересное
1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Итак, давайте с самого начала, подается 4 числа, поэтому прописываем 4 int(input()) - а. Координаты для первой клетки - x1 и y1, x2 и y2 - для второй. Можете обратиться к прошлому решению, там я более подробно все объяснил (для чего нам эти координаты). Итак, для начала стоит заметить по картинке, что слон ходит только по диагонали, нам как раз в комментах скинули две прекрасные картиночки, которые нам могут помочь
1
Я знаю что рисую так, будто мне отбили пальцы, но в целом понять можно. Представим на картинке наши координаты. Я в разных местах изобразил два хода, чтобы можно было понять закономерность. Если мы увидим, то координаты x1, y1 и x2, y2 изменяются ровно на 1, будь то на минус 1 или плюс 1. Это и будет нашим условием
1
Если бы мы обратились ко второй картинке с комментов, то мы также можем по ней решить данную задачу. Все также не выпускаем из головы тот факт, что слон ходит только по диагонали, Так что возьмем рандомную диагональ, допустим из 6. Чтобы получалась первая 6, мы, грубо говоря 'складываем 5 и 1'. Сумма координат 5 и 1 будет давать нам 6, затем сумма координат 4 и 2 будет также давать нам 6. Сумма координат для первой клетки будет равна сумме координат для второй. Дак вот возьмем мы эти четыре числа, что давали нам суммы координат (5 - x1 1- y1( 4 - x2, 2 - y2). Если взглянуть на них, то их разница будет единицей, складывали бы мы или вычитали, в нашем случае именно разницей.
❤‍🔥1
Вот вам код по этим двум картинкам.
1
Рассмотрим еще пару решений, по сути одно и то же. В первом берем разность координат в квадрат, чтобы избавиться от минуса (в случае чего). То же самое мы делаем во втором случае, но уже через функцию abs(). Я не очень помню, говорили ли мы о ней раньше, но функция abs() нужна для возвращения числа без учета знака. Любые отрицательные числа она будет преобразовывать в положительные. По сути выводим модуль числа. #abs