информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСтрашный баг в WindowsSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Серьезная уязвимость в Apache Log4j 
 Крупный взлом GoDaddy 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / humor
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Для школьника достаточно 20.10.08 21:33  Число просмотров: 3149
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Для профессионального разработчика - нет.

> Что касается всего сыра-бора, который развели относительно
> поиска наиболее грамотного решения, то применение
> супер-пупер алгоритмов для таких простых задач неуместно,

Во первых алгоритм не супер-пупер, а самое логичное решение. Во вторых именно на алгоритм и надо смотреть, а не на решение. Брут-форс - не алгоритм (ну, формально, конечно, алгоритм, но думаю ты понял что я имею в виду).

> особенно для профессионала. Самое лучшее решение - это
> быстро написаное и достаточно быстро считающее. Еще

Нет. Собеседование (особенно на senior-позицию) не олимпиада, в которой тебе добавят баллы за любое решение, выдающее правильный результат. Я проводил немало собеседований, но таких задач не задавал вообще, ибо большинство претендентов не могут осилить даже элементарнейшую задачу реверса односвязного списка за O(const) памяти, не говоря уж о задачах, требующих знания ШКОЛЬНОГО курса математики. На собеседованиях пытаются оценить потенциал претендента. То бишь если он чего не знает - научить не проблема, если мозги есть, а вот если нет мозгов - сразу нахрен, даже если знает наизусть всю стандартную библиотеку похапэ.

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

Суть таких задач не в том, чтобы ты ее решил любой ценой, а чтобы продемонстрировал свою способность МЫСЛИТЬ. Причем некоторые задачи вообще не имеют "правильного" ответа (круглые канализационные люки) или имеют ответ, который можно только знать (узнать в каком нибудь справочнике), но невозможно угадать (масса боинга, количество заправок, прибыль телеком компаний). Здесь гораздо четче просматривается цель этих задач. Ответить правильно, если ты специально не заучил все цифры из справочников, у тебя нет никакой возможности ПРИНЦИПИАЛЬНО. Поэтому расслабься и начинай думать.

> Что-то ментя это настолько затронуло, что я захотел
> проверить насколько я могу ошибиться. Подумал, что этот
> алгоритм может считать за время не больше секунды. Ошибся.
> Правда чуть оптимизировал исходный алгоритм (выкинул все
> непростые), но время не превысило десятых долей секунды.
Хехе. Просто перемножить все простые (число Эвклида) недостаточно (к тому же ты выкинул двойку). Число должно делиться не на 2, а на 16, не на 3, а на 9. С ростом N число таких степеней возрастает.

Вот решение на C:
#include <stdio.h>
#include <gmp.h>

int main(int argc, char **argv) {
    mpz_t res;
    mpz_init_set_ui(res, 1);
    for(int x=1; x<=1000; x++) {
        mpz_lcm_ui(res, res, x);
    };
    mpz_out_str (stdout, 10, res);
};

---

Как видишь оно считает решение той же задачи для N == 1000. Давай на том же собеседовании это будет следующим вопросом :-). Вполне обоснованный вопрос к профессиональному разработчику: насколько легко твое решение следует за изменяющимися требованиями (это, в общем, один из основных вопросов, ибо требования меняются постоянно)
<humor> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2022 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach