Присоединяюсь, вообще лично кажется, что основная проблема -- это не LLM и его использование, а списывание само по себе и отсутствие систематического порицания его. Все знают, что списывание российских вузах -- это норма, риски быть пойманными и реально наказанными малы по сравнению с возможностью на порядок улучшить результаты экзаменов. После защиты диссертации я ретроспективно написал большой текст про мой путь в образовательной среде
И вот я собирался пойти на апелляцию, в преддверии чего мне рекомендовали взять с собой ручку: “если что — допишешь просто что-нибудь, тебе же как раз одного-двух баллов не хватает”. Разумеется, это нарушение, и я не помню, с какой стороны поступало это предложение: от друзей по 239, их родителей или учителей из моей школы. Ручку я с собой взял, но уверен, что не воспользовался, но не могу точно сказать, из-за своего чувства справедливости или боязни того, что поймают. Так-то вроде бояться нечего — ну поймают, выгонят, вроде терять то все равно нечего. Я в итоге отстаивал написанное на олимпиаде и у меня действительно был один момент, который претендовал на те самые недостающие баллы. Обычно в таких спорных ситуациях особо не мучались и разрешали конфликт в сторону учащегося: людей было много, а времени мало. Так я в итоге попал на городской тур, решил там минимальный набор задач, получил свой диплом 3ей степени, в 239 меня не взяли, а вот в АГ СПбГУ взяли.
Случай в ВУЗе
Функциональный анализ, 3ий курс: я думал про списывание написать отдельно поподробней, но наверно хватит и абзаца здесь. Спросил своих однокурсников — в целом консенсусное мнение, что 60% из нас списывали на экзаменах постоянно. Я списал наверно на 1-2 экзаменах за всю учебу ... но не в этот раз. И надо сказать, что в этот раз это действительно имело значение: из двух билетов один я знал полностью, второй — теорема Радона-Никодима, в котором я помнил только половину доказательства, о чем я честно сообщил и получил 4 ровно за это. В конечном счете я не понимаю ни того, почему официально за списывание выгоняют с экзамена, но по факту делают это спустя рукава, и почему вообще проверка знаний устроена так, что это имеет значение. Закрою эту тему старой притчей: Приходит студент на экзамен практически не подготовленным, в итоге получает “отлично”, перед тем как уйти что-то его укусило и он спросил: «А почему Вы мне 5 поставили? Я же почти ничего в предмете не понимаю» — «чем проще студенту получить зачет по моему предмету, тем ценнее я как специалист»
Раз уж рассказали про быстрое приближенное вычисление степени с использованием особенностей IEEE 754, то не лишним будет напомнить про легендарный Быстрый обратный корень.
А еще у вас как-то странно получилось, что вы сначала расписали про x&-x и что он выделяет послений бит .... а потом забыли про это и рассказали уже про x&(x-1) и что это тоже выделяет последний бит.
А так спасибо за статью! Позволю себе оставить немного ссылок по теме
В общем, исходный посыл в том, что визуально конечно аналогия интересная, но при попытке в ней хоть чуть-чуть разобраться оказывается, что она не работает
Так на самом деле они могут накрениться только из-за что зазор есть иначе двигаться пришлось бы. На картинках выше я считал только площадь самих штакетин (они так называются?)
Это было абсолютно строго и при этом интуитивно понятно любому, кто хоть раз видел покосившийся забор.
Я вот представил себе покосившийся забор, для меня довольно очевидно, что у него площадь как и у непокосившегося, также очевидно, что меньше высота, и чуть менее очевидно, что больше площать основания. В доказательстве, которое приводит автор работает другой принцип -- высота и площадь основания не меняются. В общем это яркий пример того "Шедевр инженерной мысли" работает совершенно не так как задумано, а попутно и пояснение того почему в математике существует такой формализм. "Доказательство" пи=4 тоже отличный и я бы сказал что более глубокий пример, который показывает с какими проблемами сталкивались люди у истоков классического анализа, нам в итоге на блюдечке принесли выверенную аксиоматику, а все равно находятся те, кто говорит, что это всё деградация и "убивание смысла".
Вы гиперболизируете, как-будто из вашего сообщения стоит сделать вывод, что писать новый код не выгодно, потому что это чревато проблемами.
Да, я прекрасно понимаю есть например ситуации когда есть код, не меняющийся десятилетиями и прекрасно работающий, использующийся всеми. Делать изменения в таком коде ради выигрыша 0,1% нецелесоообразно из-за надёжности. Но если подобные проекты забрасываются, то рано или поздно оказываются на свалке истории.
А для такого случая есть еще проще алгоритм со стеком, он есть на e-maxx, едиинственное -- для случая когда длина не фиксирована, то мы делали бинарный поиск. Еще я до конца не понял, можно ли алгоритм из статьи делать онлайн
Размер окна от запроса к запросу меняется, да. Окно всегда кончается в текущем элементе, да. Возможно поможет контекст: дело происходило на транспортном уровне передачи данных, где мы хотим посчитать актуальную статистику за последний RTT - round trip time, время от отправки пакета до получения фидбека по нему - это величина ведят себя достаточно предсказуема большую часть времени, но в критические моменты начинает изменяться и на это нужно реагировать.
Окна не совсем произвольные. В целом понятно, что если например окно фиксированного размера по времени или скажем по количеству событий, то можно обойтись любым бинарным деревом поиска с поддержкой размера поддеревьев для поиска.
Решение за log^3 -- там есть несколько вариантов, но в целом это что-то в духе декартого дерево по времени, в каждой вершине что-то что умеет считать порядковую статистику. Есть вариации, но все они log^3 запрос + nlogn памяти. По поводу wavelet tree на 100% не уверен, но кажется в этой статье описан алгоритм, который мы использовали. Уточню, что там не logn, а log U в предположении, что все величины -- это целые числа из диапазона [1..U]
Решатель для RMQ лежит в директории с универсальными общими библиотеками, менять его вряд ли когда-то придется.
Не, ну почему не придётся, как раз таки допилить ради ускорение всех компонент, которые его использует -- здравое дело. С другой стороны, чаще всего у опытных разработчиков не должно быть проблем сделать улучшение без изменения интерфейса.
Это же классический Accidently quadratic! Давно уже есть идея написать по статью на обозрение всем, кто считает, что алгоритмы не нужны.
Мне кажется, что сбор статистики -- это то, что возникает всегда и везде. У меня возникла как-то задача, которую в целом можно описать как "нужно быстро считать какую-то статистику за недавний промежуток времени переменной длины в онлайн". Подсчет суммы/среднего/минимума мы сделали довольно легко сна запрос, был даже довольно экзотичный случай подсчета среднеквадратиченого отклонения, который тоже считается и тут у меня тоже есть ссылочка на квадрат. Но вот у нас дело дошло до квантиля и тут мы поняли, что задаче резко стала сложнее -- внезапно в какой-то момент научились тоже делать за логарфим с помощью wavelet tree.
Мне кажется, что здесь еще косвенно затрагивается проблема микроменеджмента. В период онбоардинга считается нормальным буквально за ручку провести нового человека, особенно если это вчерашний выпускник, но если после начального периода менеджер продолжает влезать в рутину работы подчинённого, то чаще всего проблема в менеджере, а не в подчинённом, если вы у вас не получается делегировать задачи так, чтобы ваш подчинённый делал их самостоятельно, то либо вы плохо формулируете задачи, либо задачи слишком сложные и вы должны были об этом знать до того как их выдавать. Кажется, что часто излишние созвоны мотивируются именно микроменеджментом.
Так что я бы не сказал, что она не подробная. Опять же, подозреваю, что статья писалась не для такого как я, кто итак знает. Отдельно отмечу, что как показалось странным при такой подробности полное отсутствие упоминания о linear matrix inequalities.
Предположу, что исходный список вопросов вам задали не для того, чтобы вы ответили на них в комментарии, а для того, чтобы дать вам понять, что этого явно не хватает в статье.
ИМХО. У вас хорошая техническая статья, но не понятно о чем она и для кого. Вроде как статья про метод Ляпунова, но 2 трети статьи -- это вы пошли в случайном направлении и начали в подробностях разбирать вещи, которые вполне живут самостоятельной жизнью. Например фундамент математической оптимизации тоже выражается через анализ Ляпунова, но подробный рассказ о том как это выражается -- это не детальное погружение в тематику, а плохая струтурированность и отличный способ окончательно запутать читателя.
Присоединяюсь, вообще лично кажется, что основная проблема -- это не LLM и его использование, а списывание само по себе и отсутствие систематического порицания его. Все знают, что списывание российских вузах -- это норма, риски быть пойманными и реально наказанными малы по сравнению с возможностью на порядок улучшить результаты экзаменов. После защиты диссертации я ретроспективно написал большой текст про мой путь в образовательной среде
https://vk.com/@938889-o-nauke-i-obrazovanii
По теме там два примечательных случая
Случай на олимпиаде в школе
И вот я собирался пойти на апелляцию, в преддверии чего мне рекомендовали взять с собой ручку: “если что — допишешь просто что-нибудь, тебе же как раз одного-двух баллов не хватает”. Разумеется, это нарушение, и я не помню, с какой стороны поступало это предложение: от друзей по 239, их родителей или учителей из моей школы. Ручку я с собой взял, но уверен, что не воспользовался, но не могу точно сказать, из-за своего чувства справедливости или боязни того, что поймают. Так-то вроде бояться нечего — ну поймают, выгонят, вроде терять то все равно нечего. Я в итоге отстаивал написанное на олимпиаде и у меня действительно был один момент, который претендовал на те самые недостающие баллы. Обычно в таких спорных ситуациях особо не мучались и разрешали конфликт в сторону учащегося: людей было много, а времени мало. Так я в итоге попал на городской тур, решил там минимальный набор задач, получил свой диплом 3ей степени, в 239 меня не взяли, а вот в АГ СПбГУ взяли.
Случай в ВУЗе
Функциональный анализ, 3ий курс: я думал про списывание написать отдельно поподробней, но наверно хватит и абзаца здесь. Спросил своих однокурсников — в целом консенсусное мнение, что 60% из нас списывали на экзаменах постоянно. Я списал наверно на 1-2 экзаменах за всю учебу ... но не в этот раз. И надо сказать, что в этот раз это действительно имело значение: из двух билетов один я знал полностью, второй — теорема Радона-Никодима, в котором я помнил только половину доказательства, о чем я честно сообщил и получил 4 ровно за это. В конечном счете я не понимаю ни того, почему официально за списывание выгоняют с экзамена, но по факту делают это спустя рукава, и почему вообще проверка знаний устроена так, что это имеет значение. Закрою эту тему старой притчей: Приходит студент на экзамен практически не подготовленным, в итоге получает “отлично”, перед тем как уйти что-то его укусило и он спросил: «А почему Вы мне 5 поставили? Я же почти ничего в предмете не понимаю» — «чем проще студенту получить зачет по моему предмету, тем ценнее я как специалист»
А это в браузере или в приложении? Я в приложении проверял, у меня такого эффекта не было.
Можете пожалуйста под спойлер убрать с описанием сути в заголовке? Я тогда закреплю комментарий
Какие штуки? Если подробнее опишете, то могу комментарий закрепить. Есть смысл воспользоваться формой обратной связи
https://habr.com/ru/feedback/
Раз уж рассказали про быстрое приближенное вычисление степени с использованием особенностей IEEE 754, то не лишним будет напомнить про легендарный Быстрый обратный корень.
А еще у вас как-то странно получилось, что вы сначала расписали про x&-x и что он выделяет послений бит .... а потом забыли про это и рассказали уже про x&(x-1) и что это тоже выделяет последний бит.
А так спасибо за статью! Позволю себе оставить немного ссылок по теме
http://www-graphics.stanford.edu/~seander/bithacks.html
Donald E. Knuth's "The Art of Computer Programming", Volume 4A, Chapter 7.1.3
H. S. Warren Hackerʼs Delight
Обстоятельно о подсчёте единичных битов
Алгоритмы манипуляций с битами
В общем, исходный посыл в том, что визуально конечно аналогия интересная, но при попытке в ней хоть чуть-чуть разобраться оказывается, что она не работает
Так на самом деле они могут накрениться только из-за что зазор есть иначе двигаться пришлось бы. На картинках выше я считал только площадь самих штакетин (они так называются?)
Я не знаю, что и как там в современном курсе школьной планиметрии, я увидел у вас вот такое
А вот то, о чем подумал я представив покосившийся забор
Поддержу, хотел бы добавить конкретно вот про это
Я вот представил себе покосившийся забор, для меня довольно очевидно, что у него площадь как и у непокосившегося, также очевидно, что меньше высота, и чуть менее очевидно, что больше площать основания. В доказательстве, которое приводит автор работает другой принцип -- высота и площадь основания не меняются. В общем это яркий пример того "Шедевр инженерной мысли" работает совершенно не так как задумано, а попутно и пояснение того почему в математике существует такой формализм. "Доказательство" пи=4 тоже отличный и я бы сказал что более глубокий пример, который показывает с какими проблемами сталкивались люди у истоков классического анализа, нам в итоге на блюдечке принесли выверенную аксиоматику, а все равно находятся те, кто говорит, что это всё деградация и "убивание смысла".
Вы гиперболизируете, как-будто из вашего сообщения стоит сделать вывод, что писать новый код не выгодно, потому что это чревато проблемами.
Да, я прекрасно понимаю есть например ситуации когда есть код, не меняющийся десятилетиями и прекрасно работающий, использующийся всеми. Делать изменения в таком коде ради выигрыша 0,1% нецелесоообразно из-за надёжности. Но если подобные проекты забрасываются, то рано или поздно оказываются на свалке истории.
Да, увидел, действительно!
А для такого случая есть еще проще алгоритм со стеком, он есть на e-maxx, едиинственное -- для случая когда длина не фиксирована, то мы делали бинарный поиск. Еще я до конца не понял, можно ли алгоритм из статьи делать онлайн
Размер окна от запроса к запросу меняется, да. Окно всегда кончается в текущем элементе, да. Возможно поможет контекст: дело происходило на транспортном уровне передачи данных, где мы хотим посчитать актуальную статистику за последний RTT - round trip time, время от отправки пакета до получения фидбека по нему - это величина ведят себя достаточно предсказуема большую часть времени, но в критические моменты начинает изменяться и на это нужно реагировать.
Окна не совсем произвольные. В целом понятно, что если например окно фиксированного размера по времени или скажем по количеству событий, то можно обойтись любым бинарным деревом поиска с поддержкой размера поддеревьев для поиска.
Решение за log^3 -- там есть несколько вариантов, но в целом это что-то в духе декартого дерево по времени, в каждой вершине что-то что умеет считать порядковую статистику. Есть вариации, но все они log^3 запрос + nlogn памяти. По поводу wavelet tree на 100% не уверен, но кажется в этой статье описан алгоритм, который мы использовали. Уточню, что там не logn, а log U в предположении, что все величины -- это целые числа из диапазона [1..U]
Не, ну почему не придётся, как раз таки допилить ради ускорение всех компонент, которые его использует -- здравое дело. С другой стороны, чаще всего у опытных разработчиков не должно быть проблем сделать улучшение без изменения интерфейса.
Это же классический Accidently quadratic! Давно уже есть идея написать по статью на обозрение всем, кто считает, что алгоритмы не нужны.
Мне кажется, что сбор статистики -- это то, что возникает всегда и везде. У меня возникла как-то задача, которую в целом можно описать как "нужно быстро считать какую-то статистику за недавний промежуток времени переменной длины в онлайн". Подсчет суммы/среднего/минимума мы сделали довольно легко с
на запрос, был даже довольно экзотичный случай подсчета среднеквадратиченого отклонения, который тоже считается и тут у меня тоже есть ссылочка на квадрат. Но вот у нас дело дошло до квантиля и тут мы поняли, что задаче резко стала сложнее -- внезапно в какой-то момент научились тоже делать за логарфим с помощью wavelet tree.
Мне кажется, что здесь еще косвенно затрагивается проблема микроменеджмента. В период онбоардинга считается нормальным буквально за ручку провести нового человека, особенно если это вчерашний выпускник, но если после начального периода менеджер продолжает влезать в рутину работы подчинённого, то чаще всего проблема в менеджере, а не в подчинённом, если вы у вас не получается делегировать задачи так, чтобы ваш подчинённый делал их самостоятельно, то либо вы плохо формулируете задачи, либо задачи слишком сложные и вы должны были об этом знать до того как их выдавать. Кажется, что часто излишние созвоны мотивируются именно микроменеджментом.
В английской википедии есть следующие статьи
https://en.wikipedia.org/wiki/Lyapunov_stability
https://en.wikipedia.org/wiki/Lyapunov_equation
https://en.wikipedia.org/wiki/Lyapunov_function
https://en.wikipedia.org/wiki/QR_decomposition
https://en.wikipedia.org/wiki/QR_algorithm
https://en.wikipedia.org/wiki/Schur_decomposition
https://en.wikipedia.org/wiki/Proportional–integral–derivative_controller
https://en.wikipedia.org/wiki/Bartels–Stewart_algorithm
Так что я бы не сказал, что она не подробная. Опять же, подозреваю, что статья писалась не для такого как я, кто итак знает. Отдельно отмечу, что как показалось странным при такой подробности полное отсутствие упоминания о linear matrix inequalities.
Предположу, что исходный список вопросов вам задали не для того, чтобы вы ответили на них в комментарии, а для того, чтобы дать вам понять, что этого явно не хватает в статье.
ИМХО. У вас хорошая техническая статья, но не понятно о чем она и для кого. Вроде как статья про метод Ляпунова, но 2 трети статьи -- это вы пошли в случайном направлении и начали в подробностях разбирать вещи, которые вполне живут самостоятельной жизнью. Например фундамент математической оптимизации тоже выражается через анализ Ляпунова, но подробный рассказ о том как это выражается -- это не детальное погружение в тематику, а плохая струтурированность и отличный способ окончательно запутать читателя.
Видимо потому что перевод
Разборы на русском (ютуб, перевод):
https://www.youtube.com/watch?v=eQlSvfUuQNs
https://www.youtube.com/watch?v=qO-HpEgmd6U&t=10s
Статьи (хабр, оригинал)
https://habr.com/ru/articles/196374/
https://habr.com/ru/articles/837706/
https://habr.com/ru/articles/269991/
Моя мини заметка
https://t.me/a_zachem_eto_nuzhno/29