запретить все адреса кроме .ru можно. Но только vasya@myaddress.ru вполне может быть иностранным гражданином и даже гражданином вражеского государства. И почтовые серверы для этого домена могут располагаться не в России, а где угодно, даже в Украине.
Я выше говорил, что e-mail это протокол передачи данных, а не географический объект.
Тот же самый gmail может захостить ваш произвольный домен на своих почтовых серверах. Это значит vasya@myaddress.ru может вполне оказаться почтой гугла.
Яндекс тоже предлагает хостинг почты для произвольных доменов. Это значит vasya@myaddress.COM vasya@myaddress.US vasya@myaddress.UA могут быть почтой яндекса.
Классическая система регистрации, где пользователь сам вводит логин, емайл, пароль, а потом подтверждает емайл кодом из письма. Такой сайт не будет оштрафован если пользователь введет почту gmail, proton итп?
Принадлежность почтового адреса очень сложно установить, так как любой человек на земле может завести себе уникальный адрес типа vasya@myaddress.club при этом он может разместить почтовый сервер в любой стране и даже у себя дома.
Мне кажется для человека, который только собирается изучать python, это простительно.
На данном этапе мы не знакомы с особенностями контейнеров в python, поэтому операция pop() на первый взгляд выглядит не безопасно и требует перехват исключений. В других языках обращение к удаленным элементам вызывает исключение.
Подскажите как решить конфликт Принцип подстановки Барбары Лисков и Принцип разделения интерфейса?
Класс Animal должен предоставить виртуальный метод LegCount()
Это подразумевает, что у всех животных есть ноги. Но как ввести новых безногих животных Тюлень, морской котик, дельфин, змея итп? Им теперь придется нарушить Принцип разделения интерфейса и реализовать LegCount()
Сегодня мне пришло письмо что я не прошел тестовые задания на 2024. Хотя я выполнил их по нужным алгоритмам и составил полный разбор с картинками чтобы подготовиться к собеседованию.
Это то же самое что Container With Most Water в котором надо найти максимальную площадь сечения воды между перегородками, а у вас площадь земли между заборами.
Выполняем вычисления площадей слева справа и двигаемся от минимальной пока они не встретятся. Там получается O(n)
Задача про материки. Где можно перепрыгивать через другие узлы между одинаковыми номерами и делать только один короткий прыжок между разными
На вас все напали потому-что математические выражения должны компилироваться в бинарные деревья. А деревья можно выполнять сколь угодно много раз меняя значения переменных и даже операторы можно менять. И добавлять новые действия. Алгоритмы на деревьях позволяют делать очень многое и очень универсально и быстро.
А еще бинарные деревья выполняются за максимально возможное быстрое время. На данный момент даже в теории не существует наиболее быстрых алгоритмов вычислений математических выражений.
По этому все тут и возмущены почему компилированное выражение не может менять переменные итп.
Поизучайте алгоритмы и структуры данных. Они не такие страшные как про них говорят.
Подскажите пожалуйста является ли хорошей практикой строительство дерева от листьев к корню?
Я сейчас разобрался как во время обхода строки создать стек из которого можно построить дерево от корня к листьям. Но тогда получается что-то похожее на O(2n)
Проход по строке создаст стек
Создание дерева из полученного стека
А если дерево строить прямо в процессе обхода строки то получится O(n) но дерево строить придется от листов к корню.
Хотя с другой стороны получается в самом обходе будет больше операций. Дерево будет строится параллельно. Проход по строке будет включать одновременно и создание стека и дерева сразу. Какие-то временные данные все равно придется кидать в стек.
По сути у меня и получилась сортировочная станция. Единственно отличие в том что я предлагаю все операторы кидать сначала в сортированный стек. А потом строить дерево когда все операнды и операторы раскиданы по стекам.
Я всегда считал что от этой сортировки можно уйти, но всё руки не доходили.
Ладно будем смотреть что там нам товарищ Дейкстра посоветует.
Я вообще не понимаю что вы придрались к этой сортировке? Она здесь не главное.
Главное тут дерево. Именно оно будет работать на продолжении всего жизненного цикла приложения. И только из него мы будем получать важные данные. И только оно будет влиять на скорость выполнения.
А способы получения дерева принципиально не важны. Оно собирается только 1 раз и процесс сборки перестанет нас волновать когда дерево полностью вырастет.
Конечно если у вас десятки сотни миллионов операторов, то вам надо позаботиться и об эффективной сортировке.
Я не являюсь автором дерева математических выражений. Его придумали за долго до моего рождения. Я вам показал пошаговые операции создания дерева, а как вы их будете реализовывать это уже ваши проблемы.
бинарное дерево вычисляется за O(n) так как при вычислении каждый узел посещается только 1 раз.
А вот преобразование строки в дерево может иметь ряд накладных расходов, потому-что надо сортировать операторы, а там уже всё зависит от алгоритмов сортировки в которых в худшем случае сложность может быть квадратичной.
Сборка дерева делается всего 1 раз после чего вы можете менять в нем значения операндов и вычислять его бесконечное количество раз за O(n).
Кому интересно здесь есть описание алгоритма как быстро и просто скомпилировать бинарное дерево любого математического выражения. https://gitverse.ru/MaksMN/EvaluateString
Бинарное дерево позволяет делать абсолютно всё. Любые операторы, функции, переменные. Можно даже свой скриптовый язык сделать.
запретить все адреса кроме .ru можно. Но только vasya@myaddress.ru вполне может быть иностранным гражданином и даже гражданином вражеского государства. И почтовые серверы для этого домена могут располагаться не в России, а где угодно, даже в Украине.
Я выше говорил, что e-mail это протокол передачи данных, а не географический объект.
Тот же самый gmail может захостить ваш произвольный домен на своих почтовых серверах. Это значит vasya@myaddress.ru может вполне оказаться почтой гугла.
Яндекс тоже предлагает хостинг почты для произвольных доменов. Это значит vasya@myaddress.COM vasya@myaddress.US vasya@myaddress.UA могут быть почтой яндекса.
Классическая система регистрации, где пользователь сам вводит логин, емайл, пароль, а потом подтверждает емайл кодом из письма. Такой сайт не будет оштрафован если пользователь введет почту gmail, proton итп?
просто в заголовках СМИ сейчас везде "ШТРАФ ЗА ИНОСТРАННУЮ ПОЧТУ"
Но протокол передачи данных под названием E-mail не имеет географической принадлежности так же как и протоколы http(s) ssh ftp итп.
E-mail может себе позволить абсолютно любой человек на земле.
Например что подумают о правительстве если оно введет штрафы за иностранный HTTPS?
Принадлежность почтового адреса очень сложно установить, так как любой человек на земле может завести себе уникальный адрес типа vasya@myaddress.club при этом он может разместить почтовый сервер в любой стране и даже у себя дома.
Скажите пожалуйста. Я правильно понял, что исходящая из узла суффиксная ссылка может быть только одна, а входящих много.
Вопрос.
Петя взял текст перевода Васи и переработал его. Петя не делал перевод, а только изменил уже переведенный текст
я так понимаю меня зарубили потому-что я вместо
continents.pop(islands[current_island], [])сделал
continents.[island_number] = []Мне кажется для человека, который только собирается изучать python, это простительно.
На данном этапе мы не знакомы с особенностями контейнеров в python, поэтому операция pop() на первый взгляд выглядит не безопасно и требует перехват исключений. В других языках обращение к удаленным элементам вызывает исключение.
А в этом году набора не будет?
Подскажите как решить конфликт Принцип подстановки Барбары Лисков и Принцип разделения интерфейса?
Класс Animal должен предоставить виртуальный метод
LegCount()Это подразумевает, что у всех животных есть ноги. Но как ввести новых безногих животных Тюлень, морской котик, дельфин, змея итп? Им теперь придется нарушить Принцип разделения интерфейса и реализовать
LegCount()Синтаксически это самый простой язык.
За открывающей скобкой только имя функции всё остальное её аргументы. И всё. Ни операторов , ни ключевых слов. Все операторы являются функциями.
Походу они просто базу решений алгоритмов для обучения нейросетей. Не факт что у них там вообще какая-то школа есть.
Не знаю куда обратиться, но я в замешательстве.
Сегодня мне пришло письмо что я не прошел тестовые задания на 2024. Хотя я выполнил их по нужным алгоритмам и составил полный разбор с картинками чтобы подготовиться к собеседованию.
Задача про заборы.
https://github.com/MaksMN/ContainerWithMostWater
Это то же самое что Container With Most Water в котором надо найти максимальную площадь сечения воды между перегородками, а у вас площадь земли между заборами.
Выполняем вычисления площадей слева справа и двигаемся от минимальной пока они не встретятся. Там получается O(n)
Задача про материки. Где можно перепрыгивать через другие узлы между одинаковыми номерами и делать только один короткий прыжок между разными
Там BFS
https://github.com/MaksMN/MinimumTransfers
Тут тоже максимальная сложность если нет одинаковых номеров O(n).
Хотелось бы знать что я сделал не так?
На гитхабе там все до мельчайших подробностей расписано, репозитории мои, задачи решал сам.
Эта библиотека реализует ограничения отправки?
Не более 1 сообщения в секунду в один чатНе более 20 в минуту в один чатНе более 30 в секунду в разные чатыПовторные попытки отправки в случае сбоев.
На вас все напали потому-что математические выражения должны компилироваться в бинарные деревья. А деревья можно выполнять сколь угодно много раз меняя значения переменных и даже операторы можно менять. И добавлять новые действия. Алгоритмы на деревьях позволяют делать очень многое и очень универсально и быстро.
А еще бинарные деревья выполняются за максимально возможное быстрое время. На данный момент даже в теории не существует наиболее быстрых алгоритмов вычислений математических выражений.
По этому все тут и возмущены почему компилированное выражение не может менять переменные итп.
Поизучайте алгоритмы и структуры данных. Они не такие страшные как про них говорят.
Подскажите пожалуйста является ли хорошей практикой строительство дерева от листьев к корню?
Я сейчас разобрался как во время обхода строки создать стек из которого можно построить дерево от корня к листьям. Но тогда получается что-то похожее на O(2n)
Проход по строке создаст стек
Создание дерева из полученного стека
А если дерево строить прямо в процессе обхода строки то получится O(n) но дерево строить придется от листов к корню.
Хотя с другой стороны получается в самом обходе будет больше операций. Дерево будет строится параллельно. Проход по строке будет включать одновременно и создание стека и дерева сразу. Какие-то временные данные все равно придется кидать в стек.
Вот теперь в раздумьях.
По сути у меня и получилась сортировочная станция. Единственно отличие в том что я предлагаю все операторы кидать сначала в сортированный стек. А потом строить дерево когда все операнды и операторы раскиданы по стекам.
Я всегда считал что от этой сортировки можно уйти, но всё руки не доходили.
Ладно будем смотреть что там нам товарищ Дейкстра посоветует.
Расскажите где можно почитать о разборе математической строки в дерево?
А то везде рассказывается только про само дерево и его структуре и нигде нет информации о том в какой последовательности его собирать.
Я немного прикинул и у меня вышло правило крайнего правого оператора с самым низким приоритетом.
Подскажите про другие способы разбора строки.
Я вообще не понимаю что вы придрались к этой сортировке? Она здесь не главное.
Главное тут дерево. Именно оно будет работать на продолжении всего жизненного цикла приложения. И только из него мы будем получать важные данные. И только оно будет влиять на скорость выполнения.
А способы получения дерева принципиально не важны. Оно собирается только 1 раз и процесс сборки перестанет нас волновать когда дерево полностью вырастет.
Конечно если у вас десятки сотни миллионов операторов, то вам надо позаботиться и об эффективной сортировке.
Я не являюсь автором дерева математических выражений. Его придумали за долго до моего рождения. Я вам показал пошаговые операции создания дерева, а как вы их будете реализовывать это уже ваши проблемы.
бинарное дерево вычисляется за O(n) так как при вычислении каждый узел посещается только 1 раз.
А вот преобразование строки в дерево может иметь ряд накладных расходов, потому-что надо сортировать операторы, а там уже всё зависит от алгоритмов сортировки в которых в худшем случае сложность может быть квадратичной.
Сборка дерева делается всего 1 раз после чего вы можете менять в нем значения операндов и вычислять его бесконечное количество раз за O(n).
Кому интересно здесь есть описание алгоритма как быстро и просто скомпилировать бинарное дерево любого математического выражения. https://gitverse.ru/MaksMN/EvaluateString
Бинарное дерево позволяет делать абсолютно всё. Любые операторы, функции, переменные. Можно даже свой скриптовый язык сделать.