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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.02.2017, 15:42   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Удвой Покуров Посмотреть сообщение
...и самый главный - как решение этой задачи поможет ему в Аксапте
а почему решение этой задачи должно помогать ему в Аксапте?

Цитата:
Сообщение от Удвой Покуров Посмотреть сообщение
Я, честно, стал опасаться кудесников, которые могут решить подобные задачи, но не знают основных паттернов в Dax - FormLetter'a там или ничего не слышали хорошего про SettleNow.
а почему вы считаете, что спрашивают подобные задачи и не спрашивают паттерны?
Старый 10.02.2017, 15:40   #2  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Поэтому самый лучший способ заполучить нужную работу - запросить меньше денег, чем объявил работодатель.
Потому что все равно ты не догадаешься, что у работодателя в голове сидит золотое сечение

Последний раз редактировалось Ace of Database; 10.02.2017 в 15:43.
За это сообщение автора поблагодарили: AlexSD (3).
Старый 10.02.2017, 15:49   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Потому что все равно ты не догадаешься, что у него в голове сидит золотое сечение
Му-ха-ха-ха!
Панкуете, ребяты...

Это все равно как не знать героев мультфильма Ну, погоди. Или Тома и Джерри.
Конечно, возможно, что не знают. Ничего плохого в этом нет.

Просто, если человек не знает как связан ряд Фибоначчи и золотое сечение...
Это характеристика кандидата.

Прочь грусть, прочь уныние, прочь тоску... ))))
Старый 10.02.2017, 15:56   #4  
Удвой Покуров is offline
Удвой Покуров
Участник
 
461 / 228 (8) ++++++
Регистрация: 03.04.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
Просто, если человек не знает как связан ряд Фибоначчи и золотое сечение...Это характеристика кандидата.
Я не думаю, что тот же EVGL знал что это такое, когда в Клумбе начинал программировать. И я не думаю, что это характеризует его как плохого разработчика или консультанта.
Старый 10.02.2017, 15:53   #5  
Удвой Покуров is offline
Удвой Покуров
Участник
 
461 / 228 (8) ++++++
Регистрация: 03.04.2011
Это свободная страна - пусть спрашивают что хотят, хоть дату смерти Пушкина (сегодня 180 лет, кстати, с этой печальной даты).
Если хотят взять светлую голову - стажера, то данная задача - прекрасный вариант. Как и вопрос "сколько заправок в Челябинске".
Есть ищут человека со знанием системы, я бы задавал несколько иные вопросы, исходя из собственного опыта.
Старый 10.02.2017, 15:58   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Прекрасный пример ИЛИ-ИЛИ логики. ))))
Кстати, тоже отличный маркер и характеристика кандидата.

На самом деле, в свободной стране никто не запрещает спросить И эту задачи, И задать иные вопросы.
Старый 10.02.2017, 16:05   #7  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
С одной стороны, ряд Фибоначчи у меня вызывает доверие - потому что он состоит только из целых чисел (судя по начальному тексту в википедии).
С другой стороны, ряд Фибоначчи вызывает у меня недоверие - потому что он таинственным образом связан с золотым сечением, и всякими таинственными оговорками Маззи о применимости целых чисел.
Резюме: я бы на собеседовании заявил бы об этом дуализме ряда Фибоначчи, и что я осознал этот дуализм в беседе с моим испытателем (или как называется тот, кто главный на собеседовании ?). И осторожно намекнул бы, что хочу чуть меньше денег, чем объявлено в вакансии.
Старый 10.02.2017, 16:11   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Резюме: я бы на собеседовании заявил бы об этом дуализме
можно.
а можно заявить об ограниченности представления целых чисел в компьютере.
и о том, как эту ограниченность можно преодолевать... нужно ли, в какие сроки, какой ценой.

видите, вот так и проявляется "хорошесть" кандидата, его система ценностей ))))
Старый 10.02.2017, 16:12   #9  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,913 / 5736 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
можно.
а можно об ограниченности представления целых чисел в компьютере.
и о том, как эту ограниченность можно преодолевать... нужно ли, в какие сроки, какой ценой.

видите, вот так и проявляется "хорошесть" кандидата, его система ценностей ))))
Пожалуйста, открывайте отдельные темы для обсуждения способов отбора кандидатов....
За это сообщение автора поблагодарили: mazzy (10).
Старый 10.02.2017, 16:42   #10  
Удвой Покуров is offline
Удвой Покуров
Участник
 
461 / 228 (8) ++++++
Регистрация: 03.04.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
а почему решение этой задачи должно помогать ему в Аксапте?
Да, прости. Так как обсуждение попалось мне на форуме по Дакс, я имел неосторожность предположить, что данная задача попалась кандидату на разработчика именно этой системы. Есть просто на программиста, то пример - отличный.
Цитата:
Сообщение от mazzy Посмотреть сообщение
невнимательное чтение исходного ТЗ - я говорил "характеристика кандидата", я не говорил про "плохого разработчика или консультанта"
Хм. Для меня профессиональные качества кандидата являются важной характеристикой. Хотя и не единственно важной.
Цитата:
Сообщение от mazzy Посмотреть сообщение
а можно заявить об ограниченности представления целых чисел в компьютере. и о том, как эту ограниченность можно преодолевать... нужно ли, в какие сроки, какой ценой.
Чем данные вопросы отличаются от вопроса сколько заправок в городе? Цель одна и та же - посмотреть цепочку рассуждений. И желание это делать.
Старый 11.02.2017, 15:45   #11  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Написал джоб, который генерирует первые 10 тысяч чисел фибоначчи. Длина 10-тысячного числа составляет около 2000 цифр. Вообще, приблизительная длина любого n-ного числа фибоначчи составляет примерно n/5 цифр. Так как надо сложить 1+2+3+5+8 = 5 чисел, чтобы к числу прибавился новый разряд.

Джоб у меня отработал примерно за 20 минут. На генерацию одного n-ного члена ряда, у которого n близко к 10000, уходит примерно 0,2 секунды. На генерацию первой тысячи элементов ряда уходит 5-10 секунд.
Поэтому для удобства тестируйте этот джоб для 1000 элементов.
Если переписать этот джоб на языке C++ и пользоваться указателями и массивами, то быстродействие увеличится в тысячи раз. И можно будет вычислять миллионные члены ряда Фибоначчи.

X++:
static void Job119(Args _args)
{
    int fibonacciSize = 10000; //сколько надо получить чисел Фибоначчи
    str x;
    str y;
    str total;
    int i;
    SysOperationProgress    p = new SysOperationProgress();

    str sumStrings(str _a, str _b)
    {
        str ret;
        int result;
        int digit;
        int j;
        int a;
        int b;
        int n;
        ;
        for (j = (strLen(_a) > strLen(_b) ? strLen(_a) : strLen(_b)); j >= 1; j--)
        {
            n ++;
            if (strLen(_a) >= n)
                a = str2int(subStr(_a, strLen(_a) - n + 1, 1));
            else
                a = 0;
            if (strLen(_b) >= n)
                b = str2int(subStr(_b, strLen(_b) - n + 1, 1));
            else
                b = 0;
            result = digit + a + b;
            digit = result / 10;
            result = result mod 10;
            ret = int2str(result) + ret;
        }
        if (digit)
            ret = int2str(digit) + ret;
        return ret;
    }
    ;
    p.settotal(fibonacciSize);
    p.update(true);
    x = "0";
    y = "1";
    info(x);
    info(y);
    while (fibonacciSize)
    {
        p.incCount();
        p.update(true);
        fibonacciSize --;
        total = sumStrings(x, y);
        info(total);
        [x, y] = [y, total];
    }
}

Последний раз редактировалось Ace of Database; 11.02.2017 в 15:59.
За это сообщение автора поблагодарили: mazzy (2).
Старый 11.02.2017, 17:59   #12  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Написал джоб, который генерирует первые 10 тысяч чисел фибоначчи.
Цепануло, видать ))))

Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Если переписать этот джоб на языке C++ и пользоваться указателями и массивами, то быстродействие увеличится в тысячи раз. И можно будет вычислять миллионные члены ряда Фибоначчи.
рано.
еще не все из x++ выжато.

Предложения по улучшению:
1. вполне достижим результат "меньше 1 минуты". (для измерения скорости можно отказаться от SysOperationProgress)
2. "j = (strLen(_a) > strLen(_b) ? strLen(_a) : strLen(_b))" - фи, моветон. и strlen вычисляется дважды для каждой строки. лучше j = max(strlen(_a), strlen(_b))
3. операции со строками очень медленные. и сильно нагружают сборщик мусора. лучше использовать массив
4. сложение огромных чисел - это отдельная задача для собеседований ))))) там главная хитрость - оперировать не отдельными цифрами, а группами цифр. в одном int32 легко можно хранить до 9 полноценных разрядов (числа до +2147483647). Что в совокупности с массивом вместо строки, может дать увеличение производительности раз в 10. а ведь есть еще int64 и bigint )))
5. деление - очень дорогостоящая операция ))) когда исчерпаете варианты оптимизации, попробуйте заменить деление сравнением и сложением/вычитанием. Дополнительный цикл не понадобится )))
6. особенность x++ - вызов вложенной функции в X++ выполняется непропорционально долго по сравнению с вызовом обычного метода. попробуйте переделать, сами удивитесь.
7. особенность x++ - Конейнер - это сериализация-десериализация. Контейнер очень дорогостоящая операция для банального swap. Попробуйте избавиться от контейнера.

)))))

и еще: будете играться с типами int32, int64 попробуйте разные режимы - на клиенте/на сервере. со включенным CIL и с выключенным. это тоже особенность X++

Последний раз редактировалось mazzy; 11.02.2017 в 18:36.
За это сообщение автора поблагодарили: alex55 (1).
Старый 11.02.2017, 18:46   #13  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
877 / 649 (23) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от mazzy Посмотреть сообщение
еще не все из x++ выжато.
и еще: будете играться с типами int32, int64 попробуйте разные режимы - на клиенте/на сервере. со включенным CIL и с выключенным. это тоже особенность X++
ок, попробую вместо строк использовать массив int64. В ближайшее время, когда почувствую вдохновение
Старый 11.02.2017, 19:05   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
ок, попробую вместо строк использовать массив int64. В ближайшее время, когда почувствую вдохновение
а не факт, что int64 на клиенте будет быстрее.
ведь клиент 32 разрядный. хоть и выполняется, скорее всего, на 64 разрядной машине.
Старый 14.02.2017, 16:36   #15  
AXcons is offline
AXcons
Участник
 
442 / 112 (4) +++++
Регистрация: 21.05.2015
Адрес: Москва
Числа Фибоначчи никогда рекурсией не считают. Это задачка первого курса программирования.

https://www.youtube.com/watch?v=OQ5jsbhAv_M

- Лекция в MIT по алгоритмам, в которой эта задача разбирается.
Это один из самых популярных вопросов на собеседованиях на позицию разработчика (за пределами России, понятно).
Старый 14.02.2017, 16:44   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AXcons Посмотреть сообщение
Числа Фибоначчи никогда рекурсией не считают.
Прям таки "никогда"?
А что же тогда рекурсией считают?

http://coub.com/view/6bb71
Старый 14.02.2017, 16:58   #17  
AXcons is offline
AXcons
Участник
 
442 / 112 (4) +++++
Регистрация: 21.05.2015
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
Прям таки "никогда"?
А что же тогда рекурсией считают?
Начался флуд как обычно.
Действительно, для чего изобрели рекурсию - исключительно, чтобы считать ей числа Фибоначчи! Больше то нечего ей считать.

Вы модерато форума разработчиков. Вы Кнута "Искусство программирования" почитайте как-нибудь на досуге. А то получается, что вы оспариваете анналы теории алгоритмов, которые преподают во всех университетах последние лет 30-40 наверное.
За это сообщение автора поблагодарили: mazzy (2).
Старый 14.02.2017, 17:02   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от AXcons Посмотреть сообщение
форума разработчиков.
...и консультантов!
Старый 14.02.2017, 17:26   #19  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Цитата:
Сообщение от AXcons Посмотреть сообщение
Числа Фибоначчи никогда рекурсией не считают.
Интересно, как тогда выкручиваются те, кто пишен на каком-нибудь лиспе или хаскеле? Там с циклами как-тоо не очень сложилось, зато с рекурсивностью все в порядке.
За это сообщение автора поблагодарили: Diman (1).
Старый 10.02.2017, 16:21   #20  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Опс. Спасибо. Выделил в отдельную ветку.
 


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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:56.