|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Код:
Код:
Цитата:
с моей точки зрения у Вас в корне не верное представление о принципах работы лиспа (что авто, что не авто - в данном случае не важно), то что Вы советуете алгоритмически крайне не эффективно - Ваши алгоритмы подойдут например для VB - пишите на нем, или прочитайте хоть одну книжку по лиспу - ну или хотя-бы посмотрите как там реализованы примеры функций (хотя я встречал пару методичек для студентов от которых мне просто хотелось плакать) перед тем как спорить и просить примеры. Хотите пример - дайте ТЗ с примером чертежа того что занимает 15 минут у Ваших пользователей, за сколько Вы купите решение которое будет делать то-же за 5 секунд - если мне "вдруг" удастся его реализовать - причем готов всю сумму безвозмездно перевести на счет dwg.ru (то есть Вы сами и переведете - но естественно если мы договоримся).
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Есть benchmark Michael Puckett'a. На theswamp'e требуется регистрация. Алексей выложил на autolisp.ru benchmark.lsp
Статья "how to do" - Сравнение скорости выполнения кода В первом комментарии есть вариант решения и от Евгения с помощью _vl-times (по моему даже недокументированная функция)
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
Команда: (make-list 19997) Возникла серьезная ошибка *** достигнут внутренний предел стека (смоделирован) 19996 у меня еще работает, а как у вас? Вы действительно проверяли 100000? 2) Создание списка без append - второй из двух вопросов, на первый Хотелось бы узнать сколько времени займет извлечение 9999 значений из ассоциативного списка (т.е через оператор assoc) вы почему-то не ответили. А он был основным. И про механизм извлечения данных из ассоциативного списка не написали. И про то, зачем вы предлагаете ассоцитивный список там, где предполагается обработка перебором подряд - т.е. о том, именно против чего я и возражал, у вас нигде нет ни слова. 3) Вы пишете Ваши алгоритмы - где вы увидели алгоритмы? Был просто пример как делать список, для человека, который назвал его массивом. 4)Хоть и не по делу, но т.к. частично сам виноват - вот вам ТЗ: Есть такая программа АРХИКАД, со своими форматами данных и у нее есть экспорт в DWG. Двухмерный экспорт дает набор блоков, часть из которых представляют собой участки стен с проемами - окнами и дверями - все эти блоки индивидуальные и, в общем случае, ни разу не повторяются. Для работы смежников на этом DWG надо все разблокировать (оставив сблокированными только проемы, и не относящиеся к стенам блоки (мебель сантехнику и т.д.)) привести стены к заданному цвету и слою, найти оси здания и тоже привести их к заданным цвету и слою, по возможности привести к заданному цвету и слою размеры, разделив их на осевые и прочие. Количество примитивов после завершения несколько сотен тысяч все они проанализированы и треть из них изменена. Можете задавать в программе разумное количество вопросов, но отвечать на них будет не создававший чертеж архитектор (он в другой организации работает), а проектировщик-сантехник. И последнее. Есть несколько версий Архикада (я сейчас помню про 7-ю, 9-ю, 11-ю на момент создания) но за это время появились новые я их просто не отслеживаю. Организация экспортированного DWG у разных версий может меняться, т.е. префиксы блоков не могут служить средством для распознавания стен. Работа делается для сантехников, если у них появятся чертежи из другой, возможно не существующей в момент создания вашей программы версии Архикада и с ними программа откажется работать - вы будете должны в пожарном порядке бесплатно обеспечить ее работоспособность, иначе будет считаться, что вы подвели пользователей. Это тоже входит в ТЗ. Лет 7 последняя версия работает без необходимости вносить изменения в связи с новыми версиями Архикада, поэтому фактор 15 минут на файл с планами 7 разных этажей и 3-мя разрезами сложного здания ничтожен на фоне надежности программы. Да и последующая работа по проектированию сантехники занимает несоизмеримо больше для описанного случая - дни... Деньги платить не стану, т.к. такой тест на надежность как годы реальной эксплуатации моей программы провести не смогу, и вы не сможете... Файл, если захотите, пошлю, но у меня нет под рукой достаточного количества файлов разных версий Архикада, чтобы обеспечить тестирование их именно для произвольной версии. Я слишком давно закрыл проблему.. |
|||
![]() |
|
||||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
Цитата:
Цитата:
Цитата:
Люди в этой теме спрашивают, как сделать, если и советовать кривые методы, то только в случае, что либо их реализация действительно на порядок проще для автора, либо если другого ничего нет. Предлагать вместо стандартных решений чехорду и еще говорить, а давайте сравним - это не верное решение. з.ы. ТЗ меня впечатлило - платить не станете, Вам это не надо (т.к. тест на надежность не пройден), но я ее должен пожизненно поддерживать и критерии определения я должен придумать сам - а они естественно не совпадут с Вашими - в общем, в любом случае будет, что это я "не справился". Уверяю Вас на такое ТЗ согласиться только жулик, работа которого закончится когда Вы переведете ему деньги. Цитата:
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 20.06.2014 в 14:43. |
|||||
![]() |
|
||||
Регистрация: 06.10.2007
Москва
Сообщений: 132
|
Цитата:
В отечественных описания Автолиспа упор делается на Cons как на основной инструмент создания точечного списка (у Полещука в обоих книгах), про преимущества Сons не пишут не только отечественные описания (известные мне) но и разработчики в AutoLISP Reference Guide, как минимум в А2008. Так что немудрено не знать что он намного быстрее чем append, который все-таки добавляет новый элемент в конец, а не в начало, что, будучи более естественным, провоцирует применять его. В этом смысле для меня спор был полезен, возможно он станет полезен и кому-то кто сможет реально этой скоростью воспользоваться, я, если представится случай - воспользуюсь обязательно. 2) Про отсутствие смысла циклического извлечения из ассоциатитивного списка предложенного вами #5 я как раз постоянно и говорю. По формулировке задачи понадобится именно циклическое извлечение. И поэтому ассоциативный список не нужен. У нас идет разговор глухих. 3) Зачем предлагать в #5 использовать ассоциативный список, если он без уникальных ключей, об чем я и толковал все это время? См. выше.. 4) Цитата:
Не я полез с этим спором, мне он сто лет не нужен, но и отказался от него не я. Участие в теме прекращаю, готов вернуться, только чтобы потвердить принятие участия в споре, ведь весь его интерес для вас в его публичном характере. Если вы не догадались, я больше делаю ставку на то, что не выйдет сделать программу работоспособной на разных версиях Архикада, и вполне допускаю, что быстрее будет ваш вариант (если решите основную задачу). Я бы подобный спор никому не предлагал и никогда в него не влез бы (в качестве разработчика конкурирующей версии сложной программы). Но вы предложили, я согласен. Теперь в случае спора без денег вы можете не опасаться прослыть жуликом, я, слава Богу, себе в случае победы в споре денег не просил, программа мне заведомо не нужна, так что пока под такое подозрение не попадаю. Переговоры по спору только в личке. 4) Насчет ее либо нет, либо Вы на нее просто положили Сейчас проблемы нет, но она была раньше. Примерно через версию Архикада структура файла менялась, приходилось вникать, и переделывать программу, пока однажду не осенило... А потом конечно положил - сделал алгоритм, который закрыл вопрос и положил. У меня Симферопольский друг сантехник, он мне покоя жизни не даст, если программа не работает.. Да и заказчиков подводить не резон.. Во многих регионах архитекторы предпочитают работать на Архикаде, и для сантехников на Автокаде нужна подработка. ----- добавлено через ~19 мин. ----- Я предпочел считать до семи. Про что и написал. Примерно семь секунд на 10000 операций. При всем уважении к Евгению, чтобы померить программно интервал времени, обойдусь своими силами, чего и вам желаю. Поскольку реально цикл будет в 25 и более раз меньше - не критично. В этих условиях мне больше нравится дописывать в конец а не в начало списка. Спасибо, вы первый привели текст этого варианта в этой теме. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Ну вот, мне приятно что у Вас начали появляться логически обоснованные рассуждения и выводы. Раз уж Вы (если я правильно понял) принимаете, что я кое-что да смыслю в лиспе - с Вашего позволения продолжу:
Цитата:
Цитата:
Код:
Про спор - спорить я ни о чем не предлагал - это Вы "ловко" вывернули. Мотивации публичного характера у меня нет (здесь меня и так не плохо знают). Уверяю Вас - что пользователей устраивает 15 минут - только от отсутствия других вариантов (кроме еще делать руками). Да, я полагал, что Вы вряд-ли "заинтересуетесь", но "отвертываться" бы не стал - сделал (мне бы, как Вы помните от этого ничего не перепало) просто предложить хотите сделаю Вам без Вашего участия - это типо сам себе придумал работу - которая никому не нужна (такая проверка на необходимость), но быть может, все-же, у Вас появятся мысли в "правильном" направлении - для меня это будет лучшим моральным результатом всей этой переписки. Если интересует литература по лиспу - погуглите SICP - шикарная книга для "начала" - как правила она "раскрывает" глаза на лисп как таковой (автолисп потом будет казаться детской игрушкой - простой и понятной). Искренне желаю Вам удачи и эффективности во всех делах. з.ы. если закрались сомнения по поводу "слабых" сторон в Вашем алгоритме можете выслать его мне личкой (можно и публично - это на Ваше усмотрение) - свои соображения безвозмездно выскажу.
__________________
Когда в руках молоток все вокруг кажется гвоздями. Последний раз редактировалось Дима_, 21.06.2014 в 01:55. |
|||
![]() |
|
||||
инженер-проектировщик КИПиА Регистрация: 30.08.2008
Минск
Сообщений: 159
|
тож люблю так делать
![]() всёж, пока что, не могу "дочуствовать". (именно "голову" списка) попутно, по лиспософии, возник еще вопрос - возможно ли (как если да) написать функцию на динамическое количество переменных? Offtop: кстати, думаю, не плохо было бы даже отдельный топик сделать на тему мудрости |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
А теперь Ваша очередь объяснить, что Вы подразумеваете под словом переменная (на всякий случай, по крайней мере с точки зрения лиспа, в вышепреведенном коде их нет ни одной). А Вобще для создания "произвольной динамической переменной" есть функция (set ....) - не рекомендую ее использовать - ихмо больше "вредная" функция.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Я уже про это писал - не всегда функцию обрабатывающею список с произвольным количество элементов можно безболезненно заменить на "многоаргументную функцию".
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как правильно создать расчетную схему фундамента мельницы в Лире? | tanaka | Лира / Лира-САПР | 15 | 27.02.2013 05:45 |
SolidWorks 2009 x64 SP4 значение переменной в заметке - как? Перенос переменной из детали в сборку - как? | sommer78 | SolidWorks | 6 | 13.09.2012 13:00 |
LISP - как переменной присвоить бесконечно большое значение?(не поверите, такое возможно) | cj_lex | LISP | 7 | 23.03.2012 20:25 |
Как в SCAD создать группу нагружений из загружений? | МишаИнженер | SCAD | 1 | 21.08.2011 05:30 |
Перевод имени блока в имя переменной и обратно | Supermax | Программирование | 11 | 14.12.2009 23:26 |