AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.02.2017, 15:59   #21  
AP-1055D is offline
AP-1055D
Участник
 
320 / 77 (3) ++++
Регистрация: 01.06.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
конечно же нет.
числа фибоначчи определяются через золотое сечение. именно этим они и интересны.
рекуррентная последовательность - это следствие из определения.

кстати, именно возврат к исходному определению через золотое сечение и позволяет перейти от суммирования последовательности к умножению матриц достигнуть производительности < O(n)


https://ru.wikipedia.org/wiki/%D0%A7...87%D1%87%D0%B8
Конечно же нет.

Из той же статьи:

Цитата:
Более формально, последовательность чисел Фибоначчи задаётся линейным рекуррентным соотношением.
Можно прочесть ту же статью на английском, где также даётся определение через рекурсию, что намного очевиднее чем определение через матрицы:

Цитата:
In mathematical terms, the sequence Fn of Fibonacci numbers is defined by the recurrence relation.
Кроме чисел Фибоначчи есть расширение этого кольца до чисел трибоначчи, которые также определяются через рекурсию.

Приведённое определение через матрицы и определители отсылает нас к значениям континуант на наборе единиц, которые в свою очередь определяются рекуррентным соотношением.

И я очень сомневаюсь, что математики древней Индии знали что такое матрица, что такое определитель матрицы, символ кронекера и как перемножать матрицы, так как соответствующая теория сформировалась в конце 17-го-середине 18-го веков.

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

Но при чём тут система ценностей? Исходя из моего опыта, у большинства работодателей есть только одна система ценностей: скорость работы, а качество кода, его выразительность, оптимизация не так уж важны.
За это сообщение автора поблагодарили: mazzy (2).
Старый 10.02.2017, 16:00   #22  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Удвой Покуров Посмотреть сообщение
И я не думаю, что это характеризует его как плохого разработчика или консультанта.
Тоже показатель и характеристика кандидата:
1. перевод стрелок на другого
2. невнимательное чтение исходного ТЗ - я говорил "характеристика кандидата", я не говорил про "плохого разработчика или консультанта"

))))
Старый 10.02.2017, 16:05   #23  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
658 / 503 (18) +++++++
Регистрация: 14.10.2004
С одной стороны, ряд Фибоначчи у меня вызывает доверие - потому что он состоит только из целых чисел (судя по начальному тексту в википедии).
С другой стороны, ряд Фибоначчи вызывает у меня недоверие - потому что он таинственным образом связан с золотым сечением, и всякими таинственными оговорками Маззи о применимости целых чисел.
Резюме: я бы на собеседовании заявил бы об этом дуализме ряда Фибоначчи, и что я осознал этот дуализм в беседе с моим испытателем (или как называется тот, кто главный на собеседовании ?). И осторожно намекнул бы, что хочу чуть меньше денег, чем объявлено в вакансии.
Старый 10.02.2017, 16:09   #24  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Конечно же нет.
Лайк

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Можно прочесть ту же статью на английском, где также даётся определение через рекурсию, что намного очевиднее чем определение через матрицы:
не, ребяты, давайте не будем приписывать мне то, что я не говорил
я говорил: "числа фибоначчи определяются через золотое сечение"
я говорил: "рекуррентная последовательность - это следствие из определения."

я полностью согласен с тем, что числа Фибонначчи ЗАДАЮТСЯ через рекурентную формулу.

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


Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Кроме чисел Фибоначчи есть расширение этого кольца до чисел трибоначчи, которые также определяются через рекурсию.
1. прекрасно, что вы посмотрели. это отлично
2. через рекурсию они задаются/выводятся, а не определяются.

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
По-моему, если уж так хочется обсудить теорию алгоритмов и теорию сложностей, то для этого есть более и практические задачи типа сортировки или поиска или графов.
Можно и их.
Но почему ИЛИ-ИЛИ? Можно и то, можно и другое...

Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Но при чём тут система ценностей? Исходя из моего опыта, у большинства работодателей есть только одна система ценностей: скорость работы, а качество кода, его выразительность, оптимизация не так уж важны.
Т.е. вы утверждаете, что для вас работодатели применяют только одну систему ценностей - скорость? ))))
И вы утверждаете, что для вас работодатели не применяют систему ценностей - качества кода, выразительность, оптимизация?

А почему, как вы думаете?

Последний раз редактировалось mazzy; 10.02.2017 в 16:15.
Старый 10.02.2017, 16:11   #25  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Резюме: я бы на собеседовании заявил бы об этом дуализме
можно.
а можно заявить об ограниченности представления целых чисел в компьютере.
и о том, как эту ограниченность можно преодолевать... нужно ли, в какие сроки, какой ценой.

видите, вот так и проявляется "хорошесть" кандидата, его система ценностей ))))
Старый 10.02.2017, 16:12   #26  
fed is offline
fed
Участник
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Ex AND Project
Соотечественники
 
2,020 / 3719 (128) ++++++++++
Регистрация: 13.03.2002
Адрес: İstanbul
Цитата:
Сообщение от mazzy Посмотреть сообщение
можно.
а можно об ограниченности представления целых чисел в компьютере.
и о том, как эту ограниченность можно преодолевать... нужно ли, в какие сроки, какой ценой.

видите, вот так и проявляется "хорошесть" кандидата, его система ценностей ))))
Пожалуйста, открывайте отдельные темы для обсуждения способов отбора кандидатов....
За это сообщение автора поблагодарили: mazzy (10).
Старый 10.02.2017, 16:21   #27  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Опс. Спасибо. Выделил в отдельную ветку.
Старый 10.02.2017, 16:42   #28  
Удвой Покуров is offline
Удвой Покуров
Участник
 
364 / 135 (5) +++++
Регистрация: 03.04.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
а почему решение этой задачи должно помогать ему в Аксапте?
Да, прости. Так как обсуждение попалось мне на форуме по Дакс, я имел неосторожность предположить, что данная задача попалась кандидату на разработчика именно этой системы. Есть просто на программиста, то пример - отличный.
Цитата:
Сообщение от mazzy Посмотреть сообщение
невнимательное чтение исходного ТЗ - я говорил "характеристика кандидата", я не говорил про "плохого разработчика или консультанта"
Хм. Для меня профессиональные качества кандидата являются важной характеристикой. Хотя и не единственно важной.
Цитата:
Сообщение от mazzy Посмотреть сообщение
а можно заявить об ограниченности представления целых чисел в компьютере. и о том, как эту ограниченность можно преодолевать... нужно ли, в какие сроки, какой ценой.
Чем данные вопросы отличаются от вопроса сколько заправок в городе? Цель одна и та же - посмотреть цепочку рассуждений. И желание это делать.
Старый 10.02.2017, 19:36   #29  
AP-1055D is offline
AP-1055D
Участник
 
320 / 77 (3) ++++
Регистрация: 01.06.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
Т.е. вы утверждаете, что для вас работодатели применяют только одну систему ценностей - скорость? ))))
И вы утверждаете, что для вас работодатели не применяют систему ценностей - качества кода, выразительность, оптимизация?

А почему, как вы думаете?
Исходя из моего опыта, на первом месте, то есть в приоритете, в мире AX, и, особенно, в консалтинге, важна именно скорость реализации / разработки, а потом уже всё остальное. Иногда Потому что время - деньги.

То есть, да, качество кода и всё остально тоже важно, но не на первом месте.

А выразительность кода может оценить только программист не менее сильный чем ты сам, но это бывает так редко, да и обычно не до этого, так как есть сроки в часах, дедлайн и так далее )
Старый 10.02.2017, 19:50   #30  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
важна именно скорость реализации / разработки
конечно же нет (С)
важна общая трудоемкость реализации/разработки + настройки + поддержки + развития.
а выразительность, красота и лаконичность кода влияет на последние слагаемые.

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

также готов согласиться, что KPI многих ПМ на проектах внедрения не зависит от сопровождения и развития. Поэтому лепят горбатого и сокращают первые два слагаемых, при этом неизбежно раздувая остальные.
За это сообщение автора поблагодарили: ice321i (1).
Старый 10.02.2017, 19:57   #31  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
1,388 / 395 (16) ++++++
Регистрация: 10.10.2005
Адрес: PHP
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Исходя из моего опыта, на первом месте, то есть в приоритете, в мире AX, и, особенно, в консалтинге, важна именно скорость реализации / разработки, а потом уже всё остальное. Иногда Потому что время - деньги.

То есть, да, качество кода и всё остально тоже важно, но не на первом месте.

А выразительность кода может оценить только программист не менее сильный чем ты сам, но это бывает так редко, да и обычно не до этого, так как есть сроки в часах, дедлайн и так далее )
Именно так. Время разработки и чтобы работало как надо. ВСЕ. Даже если пихать все на контрол и в один метод - никому дела нет. Только другому программисту который увидит этот код через пол-года, год.

Я кстати вообще не имею понятия что такое Фибоначи и Золотое сечение. Всегда считал "математиков" больными на всю голову как и тех кто считает что программирование это математика.
За это сообщение автора поблагодарили: AP-1055D (1).
Старый 10.02.2017, 20:16   #32  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Именно так. Время разработки и чтобы работало как надо. ВСЕ.
Конечно же нет )))
Программисты, которые пишут быстро, красиво и как надо, сейчас ухмыляются...

Всем программистам, у которых требуют только сроки,
стоит задуматься - а почему мне дают только такие задачи, которые уже сложно испортить?

Поставьте себя на место раздающего задачи.
У вас наверняка есть масса задач. Некоторые уже не испортишь и надо просто сделать и забыть. Над некоторыми надо покумекать и родить что-то такое, что можно будет потом развивать и поддерживать.

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

И кому какие задачи вы выдадите, будь вы на месте раздающего задачи?

=======================
на рынке полно программистов.
на рынке полно малооплачиваемой срочной и скучной работы.
на рынке есть и интересные высокооплачиваемые задачи. может вы их просто не видите?
За это сообщение автора поблагодарили: gl00mie (2).
Старый 10.02.2017, 20:39   #33  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,371 / 444 (19) +++++++
Регистрация: 03.12.2001
Цитата:
Рекурсия для Фибоначчи?
Без дополнительного кэширования полученных результатов?
И без дополнительных комментариев почему именно так?

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

Если не ошибаюсь, подобная задача расбирается в одной из первых глав классической книги "Структура и интерпретация компьютернах программ".
За это сообщение автора поблагодарили: mazzy (2).
Старый 10.02.2017, 20:48   #34  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Андре Посмотреть сообщение
Обычно подобные задачи решают рекурсивно на функциональных языках разработки с оптимизации хвостовой рекурсии.
тут дело даже не в функциональном языке или процедурном.
тут дело в ленивых вычислениях.
ну и отсутствие побочных эффектов, принятое в функциональных языках (если не увлекаться монадами, конечно)

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

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

memcaсhe конечно спасает отца русской демократии во многих случаях. но обычно за счет непомерно увеличенного потребления памяти.
так скорее всего, в функциональном языке придется хранить все числа последовательности. или алгоритм будет каким-то безумным.

обрати внимание, что для линейной оценки времени выполнения достаточно хранить только два числа последовательности Фибонначи. а для меньшей оценки (f(n) < On(n)) достаточно хранить только три числа.

Последний раз редактировалось mazzy; 10.02.2017 в 20:53.
Старый 10.02.2017, 20:59   #35  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Предыдущий мой пост зачеркнуть и забыть.

Цитата:
Сообщение от Андре Посмотреть сообщение
Обычно подобные задачи решают рекурсивно на функциональных языках разработки с оптимизации хвостовой рекурсии.
может, просто приведешь пример?
и объяснишь про "оптимизацию хвостовой рекурсии" для ряда чисел Фибоначчи?

ну, или ссылки хотя бы )))

Последний раз редактировалось mazzy; 10.02.2017 в 21:03.
Старый 10.02.2017, 21:22   #36  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,371 / 444 (19) +++++++
Регистрация: 03.12.2001
Когда функция вызвает другую функцию (себя, как частный случай) она кладет на стек (который имет фиксированный и довольно небольшой размер) переменные, которые надо передать в функцию, и адрес возврата.

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

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

Получается, что стек не растет по мере рекурсивного вызова функций (а это критично для функциональных языков программирования, где цикл сделать не всегда возможно) независимо от глубины рекурсии.
Старый 10.02.2017, 21:27   #37  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Андре Посмотреть сообщение
не любую рекурсию можно оптимизировать
именно.

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

А можно попросить рассказать применительно к ряду чисел Фибоначчи?
Старый 10.02.2017, 21:34   #38  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,371 / 444 (19) +++++++
Регистрация: 03.12.2001
А можно на примере факториала ? У меня просто слайды остались с одного из докладов http://www.evernote.com/l/ABEfDwoBJN...J5KRvLmJcd7RA/ (на примере F#). Там как раз показан неочивидный момент, когда рекурсия не может быть оптимизирована.
За это сообщение автора поблагодарили: mazzy (2).
Старый 10.02.2017, 21:42   #39  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
20,290 / 3082 (143) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Не-а. ))))))
Для факториала как раз замечательно выполняется оптимизация хвостовой рекурсии даже вручную.

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

бывает, конечно, когда кандидат не врубается и предлагает "удалиться".
что ж... в этом случае вряд ли такому кандидату стоит задавать другие вопросы.
Старый 10.02.2017, 21:43   #40  
ax_mct is offline
ax_mct
Участник
Аватар для ax_mct
 
1,388 / 395 (16) ++++++
Регистрация: 10.10.2005
Адрес: PHP
Цитата:
Сообщение от mazzy Посмотреть сообщение
Конечно же нет )))
Программисты, которые пишут быстро, красиво и как надо, сейчас ухмыляются...

Всем программистам, у которых требуют только сроки,
стоит задуматься - а почему мне дают только такие задачи, которые уже сложно испортить?

Поставьте себя на место раздающего задачи.
У вас наверняка есть масса задач. Некоторые уже не испортишь и надо просто сделать и забыть. Над некоторыми надо покумекать и родить что-то такое, что можно будет потом развивать и поддерживать.

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

И кому какие задачи вы выдадите, будь вы на месте раздающего задачи?

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

А настоящий программист AX делает сначала быстро и грязно, после чего понимает что надо, и только потом по возможности делает красиво.

Мне не нужны те кто щелкает олимпиадные задачи физмат школы, мне нужны те кто хорошо умеет делать работающие вещи. Задач я бы не задавал вообще.
За это сообщение автора поблагодарили: Bobkov (3).
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:50.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.