avva: (moose)
avva ([personal profile] avva) wrote2013-05-13 01:17 am

альтернатива физзбаззу

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

private static int ok(int a, int b) {
   while (a >= b) a -= b;
   return a;
}

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

[identity profile] huzhepidarasa.livejournal.com 2013-05-13 03:29 pm (UTC)(link)
Посмотрите на параметры accumulate внимательно.
Edited 2013-05-13 15:30 (UTC)

[identity profile] brandt1.livejournal.com 2013-05-13 04:13 pm (UTC)(link)
Конечно, смотрел. Но я не вник в суть задания. Теперь понял, что функцию combiner надо как раз определить.
Даже нашел ее, хотя сам я такими трюками не пользуюсь.

[identity profile] brandt1.livejournal.com 2013-05-13 04:25 pm (UTC)(link)
Что значит где - сам нашел,но сверил ответ с источником: http://www.joelonsoftware.com/articles/TestYourself.html

[identity profile] brandt1.livejournal.com 2013-05-13 04:29 pm (UTC)(link)
Что значит где - сам нашел, но сверил с источником. Тут я вставлял ссылку, но мне сообщил ЖЖ, что мой ответ воспринят как спам. Поэтому укажу, что эта ссылка находится через Гугл по тексту
function accumulate(combiner, nullValue, l)

[identity profile] huzhepidarasa.livejournal.com 2013-05-13 05:02 pm (UTC)(link)
А, в смысле, написали ее?

[identity profile] huzhepidarasa.livejournal.com 2013-05-13 05:17 pm (UTC)(link)
Понятно. Меня сбило слово «трюк». Что за трюк имеется в виду?

[identity profile] brandt1.livejournal.com 2013-05-13 07:34 pm (UTC)(link)
Ну просто, всю эту задачу я так назвал,без желания обидеть. В практической деятельности кто так сумму квадратов находит? Это хорошее упражнение на рекурсию. Если я в чем-то неправ,объясните.

[identity profile] huzhepidarasa.livejournal.com 2013-05-13 08:31 pm (UTC)(link)
Сумму квадратов через accumulate, конечно, не считают, раз ее можно посчитать по формуле (если ее вообще кто-нибудь считает). Речь не о сумме квадратов, а о самой функции accumulate, которую совсем не ради суммы квадратов придумали.

[identity profile] brandt1.livejournal.com 2013-05-14 05:47 am (UTC)(link)
Ясно,что речь не о сумме квадратов. А для чего ее придумали? Приведите примеры практического использования этой javascript функции.

[identity profile] huzhepidarasa.livejournal.com 2013-05-14 06:41 am (UTC)(link)
Это волшебная функция. Я на джаваскрипте не пишу, поэтому практических примеров из этого языка привести не могу, но вот народ собрал примеры на питоне: http://stackoverflow.com/questions/15995/useful-code-which-uses-reduce-in-python, а вот, если интересно, теоретический фундамент этого дела: http://www.cs.nott.ac.uk/~gmh/fold.pdf (fold и reduce — другие названия для этой же функции).

[identity profile] brandt1.livejournal.com 2013-05-14 08:45 am (UTC)(link)
Спасибо за ссылки, попробую почитать. Но все это далеко от моего конкретного вопроса. Как подбирать функцию combiner для конкретных случаев, да и каковы они?
Поэтому для меня это и выглядит пока трюком. Беглый просмотр pdf-файла не дает ответа на вопрос,да и ответы на питоне как-то далеки от темы.

[identity profile] huzhepidarasa.livejournal.com 2013-05-14 11:05 am (UTC)(link)
Я боюсь, беглого просмотра будет мало. Объяснить все в одном комментарии я тоже не смогу. Вдумчивое изучение ничем не заменить.