Форум программистов, компьютерный форум, киберфорум
Комментарии
Войти
Регистрация
Восстановить пароль
  1. Старый комментарий
    Аватар для Catstail
    Мемоизация в Лиспе
    Цитата:
    Сообщение от Welemir1 Просмотреть комментарий
    ссылка на статЬю(мягкий знак пропал)
    конечно же Питон Лисп!
    Спасибо, поправил!
    Запись от Catstail размещена 16.09.2021 в 07:42 Catstail вне форума
  2. Старый комментарий
    Мемоизация в Лиспе
    Здравствуйте, Вы не напомните, по-моему какой-то редактор поддерживает Lisp. А вот Emacs .
    И очень хотелось-бы увидеть исполнение нейросетей в Lisp.
    Не могу оценить статью, для меня это сложно к сожалению.
    Запись от Hretgir размещена 15.09.2021 в 06:56 Hretgir вне форума
    Обновил(-а) Hretgir 15.09.2021 в 06:58
  3. Старый комментарий
    Мемоизация в Лиспе
    Цитата:
    идеальный язык давно создан и, как вы думаете, он называется?
    Тут и думать нечего - это конечно же QuickBasic. Иного не дано.
    Другие языки могут иметь большую память, большее быстродействие, большее... да много чего большее. Но большее - не значит, что идеальное!
    Запись от wer1 размещена 14.09.2021 в 07:50 wer1 вне форума
  4. Старый комментарий
    Аватар для Welemir1
    Мемоизация в Лиспе
    ссылка на статЬю(мягкий знак пропал)

    Цитата:
    идеальный язык давно создан и, как вы думаете, он называется?
    конечно же Питон Лисп!
    Запись от Welemir1 размещена 14.09.2021 в 06:56 Welemir1 вне форума
  5. Старый комментарий
    Аватар для Catstail
    Задача о m максимумах
    Цитата:
    Сообщение от K_ILYA_V Просмотреть комментарий
    Опишите ошибку более точно, пожалуйста.
    - вы не поняли основной посыл заметки (что быстрее - сортировать полностью или вставлять в упорядоченный массив). Если бы поняли, то привели бы два кода на ассемблере - полная сортировка и вставка.
    Запись от Catstail размещена 01.05.2021 в 11:59 Catstail вне форума
  6. Старый комментарий
    Аватар для Catstail
    Задача о m максимумах
    Цитата:
    Сообщение от Tavashi Просмотреть комментарий
    Также и у вас придирки к ассемблерному коду лежат в том же классе эквивалентности.
    Никаких придирок к ассемблерному коду у меня нет. Есть претензия к тому, кто его привел - он писал, что код линейный.
    Линейный (по его словам "прямой как рельс") код к сортировке не способен. А вот еще один участник дискуссии (Curry)
    нашел в этом коде алгоритмические ошибки. Пусть они останутся на совести автора этого кода.

    Да и вообще этот код и его обсуждение не имеет к теме моей заметки никакого отношения. Тема заметки: что быстрее - сортировать или вставлять в упорядоченный массив минимальных размеров. А товарищ мне доказывает, что ассемблерный код
    быстрее Javовского... И что?

    Я вообще замечаю, что люди стремительно разучились читать, и привыкли реагировать на ключевые слова. Это называется "клиповое мышление".

    Задаю вопрос: "что быстрее - сортировать или вставлять в упорядоченный массив минимальных размеров". Получаю ответы:

    - не надо вставлять в упорядоченный, надо использовать кучу (это самое умное, что написали на хабре)
    - на ассемблере еще быстрее (очень в тему).
    Запись от Catstail размещена 01.05.2021 в 11:53 Catstail вне форума
  7. Старый комментарий
    Аватар для Catstail
    Задача о m максимумах
    Цитата:
    Сообщение от Tavashi Просмотреть комментарий
    Если нужно решать задачу за отведенное асимптотическое время, то так и нужно об этом писать. И правда, немного жаль ваших студентов, хотя тему вы затрагивали интересную, на мой взгляд.
    Нет, так не нужно писать! Любую задачу нужно стараться решить максимально рационально. Это, по-моему, предполагается по умолчанию. Всегда. Вот обратное (если нужно хоть какое-то решение) - да, стоит обговорить. А Ваше предложение приучает к тому, что программисту все нужно "разжевать и в рот положить". Вам не кажется, что опуская планку, Вы тем самым сводите программистов к тупым кодерам?

    Я учился в физматшколе... У нас можно было за контрольную, в которой все примеры решены верно, получить трояк и подпись
    "верно, но нерационально". Это правильный подход. Поэтому не стоит жалеть моих студентов. По крайней мере по двум причинам:

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

    Ну, и под занавес: цитата из классика (В.Войнович "Жизнь и необычайные приключения солдата Ивана Чонкина"):


    "... -- Теперь допонял.-- Голос Борисова иронически завибрировал.-- А ты,
    если по малой нужде идешь, ширинку сам расстегиваешь или указания дожидаешь? "
    Запись от Catstail размещена 01.05.2021 в 11:39 Catstail вне форума
  8. Старый комментарий
    Задача о m максимумах
    Цитата:
    Сообщение от Tavashi Просмотреть комментарий
    Если нужно решать задачу за отведенное асимптотическое время, то так и нужно об этом писать. И правда, немного жаль ваших студентов, хотя тему вы затрагивали интересную, на мой взгляд.
    Вы невнимательно прочитали запись ТС. Он не ставил перед собой задач, которые ему пытаются здесь приписать. ТС просто поделился с нами своими мыслями и решением одной интересной ему (и не только ему) задачи.
    Запись от wer1 размещена 19.04.2021 в 07:40 wer1 вне форума
  9. Старый комментарий
    Задача о m максимумах
    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    концептуальные и конкретные.
    Ну вы же стали стали проверять свою концепцию на конкретике, зная, что ас. сложность имеет опосредованное отношение к производительности. Не понимаю, почему тогда претензии к ассемблерному коду, который на конкретике показывает, что можно сделать вашу задачу быстрее.

    Мне, например, не нравится, что на Java вы тесты делали не через JMH и наименование ваших переменных (ii, jj), но это все придирки, не меняющие картину в целом. Также и у вас придирки к ассемблерному коду лежат в том же классе эквивалентности.

    К тому же в вашей преамбуле к задаче не совсем понятна отсылка к "умельцам-студентам", которые, обожемой, сделали задачу через сортировку, чем, видимо, заслужили не зачет. Если нужно решать задачу за отведенное асимптотическое время, то так и нужно об этом писать. И правда, немного жаль ваших студентов, хотя тему вы затрагивали интересную, на мой взгляд.
    Запись от Tavashi размещена 18.04.2021 в 14:46 Tavashi вне форума
  10. Старый комментарий
    Аватар для K_ILYA_V
    Задача о m максимумах
    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    - да, свои ошибки надо уметь признавать. Я же наблюдаю у товарища явно повышенное желание "наскочить".
    Опишите ошибку более точно, пожалуйста. Потому что на данный момент я склонен считать что вы просто не можете разобраться в коде и как следствие пытаетесь вменить мне несуществующие ошибки вами же и придуманные.

    Как например выше написанная другим комментатором глупость что мой код замусорит выходной массив не существующими значения. Ему конечно простительно с глупцов спрос никакой но от вас я с интересом выслушало.

    «Наскочить»? Вы предложили условия задачи, я написал код который ее решает, вы не смогли его понять, мне кажется здесь больше подходит слово «опростоволоситься».

    За что кукушка хвалит петуха, за то что хвалит он кукушку.
    Запись от K_ILYA_V размещена 14.04.2021 в 11:25 K_ILYA_V вне форума
  11. Старый комментарий
    Аватар для Catstail
    Задача о m максимумах
    Цитата:
    Сообщение от K_ILYA_V Просмотреть комментарий
    Они слепые вожди слепых; а если слепой ведёт слепого, то они оба упадут в яму.
    - цитаты положено заключать в кавычки... Могу порекомендовать хороший рассказ В.Шукшина; мне кажется, что он - в тему.
    Запись от Catstail размещена 14.04.2021 в 06:44 Catstail вне форума
    Обновил(-а) Catstail 14.04.2021 в 06:45
  12. Старый комментарий
    Аватар для Catstail
    Задача о m максимумах
    Цитата:
    Сообщение от Curry Просмотреть комментарий
    Он, для каждого элемента исходного массива проходит по всему выходному заменяя там элементы меньше текущего. Это и медленнее, и не точно, т.к если, допустим, во входном массиве только одна 9-ка, а остальные элементы меньше, то на выходе будут все 9-ки, которых во входном нет.
    - да, свои ошибки надо уметь признавать. Я же наблюдаю у товарища явно повышенное желание "наскочить".
    Запись от Catstail размещена 14.04.2021 в 06:37 Catstail вне форума
  13. Старый комментарий
    Аватар для K_ILYA_V
    Задача о m максимумах
    Цитата:
    Сообщение от Curry Просмотреть комментарий
    ...
    Они слепые вожди слепых; а если слепой ведёт слепого, то они оба упадут в яму.
    Запись от K_ILYA_V размещена 13.04.2021 в 23:02 K_ILYA_V вне форума
  14. Старый комментарий
    Аватар для Curry
    Задача о m максимумах
    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    Гордыня есть у всех, но у вас ее размер несколько превышает установленные стандарты.
    Враньё у него превышает всякие нормы. Кроме того что он соврал про отсутствие переходов в программе и кол-во команд, у него алгоритм просто более медленный чем у вас, и, даже нерабочий.
    Вы вставляете в выходной массив только когда надо и в нужную позицию упорядоченного массива.
    Он, для каждого элемента исходного массива проходит по всему выходному заменяя там элементы меньше текущего.
    Это и медленнее, и не точно, т.к если, допустим, во входном массиве только одна 9-ка, а остальные элементы меньше, то на выходе будут все 9-ки, которых во входном нет.
    Запись от Curry размещена 13.04.2021 в 08:42 Curry вне форума
  15. Старый комментарий
    Аватар для Catstail
    Задача о m максимумах
    "я написал минималистический код не скованный ни какими парадигмами программирования.
    если бы скайнет существовал он был бы написан таким кодом. (гордыня)" - да я давно это понял... Гордыня есть у всех, но у вас ее размер несколько превышает установленные стандарты.

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

    А вот концепция "я начальник ты дурак" мне совершенно не свойственна, это вы зря.

    Если угодно, я давно делю знания и навыки на два класса: концептуальные и конкретные.

    Конкретные очень важны в данной точке, но "живут" сравнительно недолго. Пример конкретного знания - специфические команды микропроцессора "Пентиум", внесенные в его архитектуру в прошлом году и позволяющие коротко программировать то-то и то-то, анонимные метки (естественный прием, позволяющий при программировании простых ветвлений не нагружать память программиста) и т.п. Все это на протяжении жизни достаточно быстро меняется. И может обесцениться "на глазах". В моей жизни это случалось по крайней мере дважды.

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

    Поэтому я не стесняюсь, что не знаю какой-то конкретики (а кто знает ВСЁ, может, вы?)

    И - неожиданно - спасибо за оценку статьи. Но думаю, что заминусовали ее не студенты, а люди т.н. клипового мышления. Они не вникают в содержание, а реагируют на ключевые слова. В комментах я пытался "свернуть к теме", но они упорно продолжали писать свое, типа: "да не надо вставлять в массив, надо использовать кучу" и т.п. Хотя этот тезис не опровергает, а подтверждает основной посыл статьи - для получения нескольких максимумов не надо сортировать все!
    Запись от Catstail размещена 13.04.2021 в 06:46 Catstail вне форума
    Обновил(-а) Catstail 14.04.2021 в 06:46
  16. Старый комментарий
    Аватар для K_ILYA_V
    Задача о m максимумах
    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    ...что изменение в системе команд ассемблера способно изменить фундаментальные математические факты...
    вы путаете теплое с мягким. изменение набора команд позволяют применять новые алгоритмы подчиняющиеся другим математическим закономерностям, хотя в случае моего кода он уже имеет сложность равную O(n)=n*m
    и следовательно добиться ускорения путем уменьшения сложности уже не представляется возможным.

    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    ...нужно принять решение, что перестановка нужна. А это - ветвление (пусть и реализованное микропрограммно)...
    основное преимущество команды CMOVcc в том что она выполняет либо не выполняет действие по перемещению элемента в зависимости от флага. такое действие никак не затрагивают предсказатель переходов и не могут обрушить вычислительный конвейер. CMOVcc не является ветвлением ни по сути ни по духу.

    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    ...Что же до анонимных меток...
    то это дурное влияние догматов отечественного образования в частности "я начальник преподаватель ты дурак студент."

    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    ...Даже дискутируя с таким, как вы, можно чему-то научиться....
    гордыня

    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    ...Если говорить совсем грубо, то то, что вы написали, выглядит так:...
    я написал минималистический код не скованный ни какими парадигмами программирования.
    если бы скайнет существовал он был бы написан таким кодом. (гордыня)

    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    ...И самое главное, какое отношение имеет ваш код к главному вопросу: что быстрее полная сортировка или вставка в упорядоченный (задача про m максимумов)?
    доказательство того что трава зеленая а вода мокрая любимый преподавательский прием, риска ощибится никакого зато выглядит очень умно и красиво.

    так называемая "поставленная" вами задача давно решена в рамках теории вероятностей, повторное ее доказательство это как очередное доказательства теоремы пифагора, с каждым разом решения все экстравагантней а результат один и тот же.



    а вообще я считаю что статья интересная и заминусили ее на хабре те студенты которые такую проблему сортировкой решают они как увидели чтото сложней библиотечной функции так у них вспыхнула лютая ненависть к тем страданиям которые они пережили будучи студентами.
    Запись от K_ILYA_V размещена 12.04.2021 в 22:40 K_ILYA_V вне форума
    Обновил(-а) K_ILYA_V 12.04.2021 в 22:45
  17. Старый комментарий
    Аватар для Catstail
    Цена естественности или как обогнать QuickSort
    Цитата:
    Сообщение от AlexMarkov Просмотреть комментарий
    Применение правильного алгоритма, иногда, единственный способ решить вопрос со скоростью вычислений.
    Просматривал тематику алгоритмов сортировки, Ваша статья оказалась кстати, спасибо за более
    подробную информацию при освоении алгоритмов и структур данных.
    - спасибо за добрые слова!
    Запись от Catstail размещена 11.04.2021 в 15:34 Catstail вне форума
  18. Старый комментарий
    Аватар для Catstail
    Цена естественности или как обогнать QuickSort
    Цитата:
    Сообщение от CoderHuligan Просмотреть комментарий
    Catstail, - а сортировка Шелла разве не совмещает в себе преимущества быстрой сортировки с сортировкой вставками? Когда-то я сравнивал работу шелла и квиксорт и Шелл оказывался лучше квиксорт.
    - сортировка Шелла не обладает естественным поведением. Могут быть ситуации, когда Шелл лучше quicksort. Но предел
    любой универсальной сортировки O(n*log(n)). Анализ сортировки Шелла весьма сложен и этот вопрос до конца не изучен.
    Запись от Catstail размещена 11.04.2021 в 15:33 Catstail вне форума
  19. Старый комментарий
    Аватар для Catstail
    Задача о m максимумах
    Цитата:
    Сообщение от K_ILYA_V Просмотреть комментарий
    вы ярко и не двусмысленно демонстрируете ваш уровень знаний современного ассемблера а заодно и современной архитектуры х86 процессоров, а также свой стиль преподавания.

    я даже могу сказать точную дату когда ваше понимание всего выше перечисленного застыло на одном месте, это 1 ноября 1995 года, дата запуска в производство Pentium Pro в котором была реализована инструкция CMOVcc. начиная с этого момента стало возможно реализовывать алгоритмы перестановки данных без условных переходов и эти алгоритмы доступны уже 26 лет подряд. весь мой код основан на этой технологии и как следствие в моем коде нет необходимости создавать разные ветки для обработки данных, один и тот же участок кода раскладывает данные в нужном порядки при любом результате сравнения. очевидно что виду ограниченности своих знаний вы не в силах это понять.

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

    вы просто эталонный представитель современного преподавателя.

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

    Для перестановки условные переходы не нужны. Я это и не утверждал. Но суть сортировки не только в перестановке, еще нужно принять решение, что перестановка нужна. А это - ветвление (пусть и реализованное микропрограммно). Что же до анонимных меток, то да, я ними не был знаком, хотя представление об ассемблере имею. Теперь познакомился. Спасибо. Даже дискутируя с таким, как вы,
    можно чему-то научиться.


    Если говорить совсем грубо, то то, что вы написали, выглядит так: "Вот моя сортировка:

    Код:
    ...
    ...
    call sort
    ...
    ...
    и никаких ветвлений и переходов"


    И самое главное, какое отношение имеет ваш код к главному вопросу: что быстрее полная сортировка или вставка в упорядоченный (задача про m максимумов)?
    Запись от Catstail размещена 11.04.2021 в 15:27 Catstail вне форума
    Обновил(-а) Catstail 11.04.2021 в 15:40
  20. Старый комментарий
    Аватар для K_ILYA_V
    Задача о m максимумах
    Цитата:
    Сообщение от Catstail Просмотреть комментарий
    какое отношение имеет ваш пост к теме заметки? То, что сортировка,
    реализованная на ассемблере, будет быстрее сортировки на языке высокого уровня - вполне очевидно. Но вопрос заметки
    не в этом, а в другом: что быстрее - сортировать массив из 20 тыс элементов (за O(n*log(n)) в лучшем случае) или вставлять
    элементы в небольшой отсортированный массив (из 10 элементов). Опыт (и теоретические соображения) показывают, что второе
    быстрее. Причем, по причинам алгоритмическим (а язык реализации не при чем). И на ассемблере будет так же, не сомневайтесь.

    Пригляделся к вашему коду... Ссылка на метку @b есть, а самой метки я не нашел. Вы код-то запускали, хотя бы раз?

    PS

    "Прямой как рельс" код сортировать не может в принципе. Для организации сортировки нужны циклы, а для сравнения
    элементов - команды ветвления. Выше вы написали глупость. Имейте честность это признать.
    вы ярко и не двусмысленно демонстрируете ваш уровень знаний современного ассемблера а заодно и современной архитектуры х86 процессоров, а также свой стиль преподавания.

    я даже могу сказать точную дату когда ваше понимание всего выше перечисленного застыло на одном месте, это 1 ноября 1995 года, дата запуска в производство Pentium Pro в котором была реализована инструкция CMOVcc. начиная с этого момента стало возможно реализовывать алгоритмы перестановки данных без условных переходов и эти алгоритмы доступны уже 26 лет подряд. весь мой код основан на этой технологии и как следствие в моем коде нет необходимости создавать разные ветки для обработки данных, один и тот же участок кода раскладывает данные в нужном порядки при любом результате сравнения. очевидно что виду ограниченности своих знаний вы не в силах это понять.

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

    вы просто эталонный представитель современного преподавателя.

    я это заскриню потому как не сомневаюсь что вы захотите это стереть.
    Запись от K_ILYA_V размещена 11.04.2021 в 11:49 K_ILYA_V вне форума
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.