Здравствуйте, NickName, Вы писали:
NN>Мне рассказывали задачку, которая предлогалась на приеме в израильское отделение Intel. Итак:
NN>Вождь племени говорит индейцам: NN>- Ваши жёны (как минимум одна) изменяют вам. Если вы ловите супругу на измене — убивайте её. NN>Две ночи в деревне было тихо, после чего раздались выстрелы: NN>Вопрос: Что происходило в эти две ночи?
NN>Имеется в виду, как рассуждал какой-нить индеец?
Такую задачку испортили... она изначально была многим сложнее и интереснее...
Здравствуйте, Anatoliy Elsukov, Вы писали:
AE>Здравствуйте, NickName, Вы писали:
AE>Такую задачку испортили... она изначально была многим сложнее и интереснее...
Если Вас не затруднит, приведите Ваш вариант... Было бы неплохо, если с решением
Здравствуйте, Igor Trofimov, Вы писали:
КАА>>Написать функцию, подсчитывающую количество битов в двойном слове. КАА>>Оптимально причем
IT>Оптимально по скорости? Табличку забацать, в 256, а еще более оптимально — в 65536 значений.
Ходят слухи, что не стоит увлекаться разворачиванием циклов, построением табличек и проч — это из-за возможных кеш-эффектов. Т.е. надо спросить размер кеша и, исходя него, определить оптимальный размер таблички.
Здравствуйте, КАА, Вы писали:
КАА>Написать функцию, подсчитывающую количество битов в двойном слове. КАА>Оптимально причем
Сразу оговорюсь придумал не я
unsigned int bitcount(unsigned int n)
{
n = (n&0x55555555) + ((n >> 1)&0x55555555);
n = (n&0x33333333) + ((n >> 2)&0x33333333);
n = (n&0x0F0F0F0F) + ((n >> 4)&0x0F0F0F0F);
n = (n&0x00FF00FF) + ((n >> 8)&0x00FF00FF);
n = n + (n >> 16);
return n;
}
There are 10 types of people in the world, those who don't understand binaries, those who do, and those who understand not only binaries.
Здравствуйте, Anton V. Kolotaev, Вы писали:
AV>Здравствуйте, Igor Trofimov, Вы писали:
КАА>>>Написать функцию, подсчитывающую количество битов в двойном слове. КАА>>>Оптимально причем
IT>>Оптимально по скорости? Табличку забацать, в 256, а еще более оптимально — в 65536 значений.
AV>Ходят слухи, что не стоит увлекаться разворачиванием циклов, построением табличек и проч — это из-за возможных кеш-эффектов. Т.е. надо спросить размер кеша и, исходя него, определить оптимальный размер таблички.
Небольшое усложнение ситуации. Пусть кэш у нас имеет нестандартный размер. 200 байт. Как тут поступить?
Все будет Украина!
Re[8]: Задачки на собеседовании
От:
Аноним
Дата:
22.12.02 04:56
Оценка:
Здравствуйте, zaiats_2k, Вы писали:
A>>Когда холодильник не открыт он нагревает комнату.
Z2>Когда открыт — тоже нагревает.
Z2>Вот мы и выяснили что такое холодильник — изощрённый нагревательный прибор.
Да так и есть, если мне память не изменяет из школьного курса физики. Там была формула КПД, которая гласит, что у холодильника, он очень низкий. Соответственно, это значит, что он совершенный нагреватель.
Hello, Atilla!
You wrote on Sun, 22 Dec 2002 17:48:57 GMT: A> From: Atilla Оценить A> Здравствуйте, КАА, Вы писали: КАА>> Написать функцию, подсчитывающую количество битов в двойном слове. КАА>> Оптимально причем A> наверное так: A> size_t get_dword_bits_count() A> { A> return 8*sizeof(DWORD); A> } A> Абсолютно оптимально! По идее все должно посчитаться на этапе A> компиляции. A> ... << RSDN@Home 1.0 beta 3 >>
наконец-то первое здравое решение из области "какой вопрос — такой ответ"!!
но вышеприведенное решение с подсчетом выставленных бит все равно супер,
чего не отнять, того не отнять!
With best regards, Valery A. Boronin. E-mail: boronin@novosoft.ru
Posted via RSDN NNTP Server 1.4.1
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Здравствуйте, Pushkin, Вы писали:
P>Здравствуйте, Аноним, Вы писали:
А>>расскажите кто какие задачки решал на собеседованиях при приеме на работу.
P>Я правда туда не собеседовался P>Но, говорят, Микрософт даёт и такую вот задачку:
P>На прямоугольном листе бумаги нарисован (как попало) прямоугольник. P>Перегибами надо разделить область ВНЕ прямоугольника пополам.
Что значит "пополам?".
это понятией растежимое
:: Into my SONY MDR-R10 sound "Faithlees — Insomnia" ::
Здравствуйте, Slamin, Вы писали:
>Здравствуйте, КАА, Вы писали:
КАА>>Написать функцию, подсчитывающую количество битов в двойном слове. КАА>>Оптимально причем
> unsigned int bitcount(unsigned int n) {...}
Уважаемые господа специалисты. Бесспорно, красиво. Наверное оптимально.
Одно обидно — непонятно. Сказано: хочешь понять всю глубину предмета — объясни дураку.
Объясните, пожалуйста, на чём основан этот алгоритм? В чём идея?
Здравствуйте, Pushkin, Вы писали:
P>Здравствуйте, Аноним, Вы писали:
А>>расскажите кто какие задачки решал на собеседованиях при приеме на работу.
P>Я правда туда не собеседовался P>Но, говорят, Микрософт даёт и такую вот задачку:
P>На прямоугольном листе бумаги нарисован (как попало) прямоугольник. P>Перегибами надо разделить область ВНЕ прямоугольника пополам.
Прочертить линию через две точки — центры двух прямоугольников. Прямоугольники: весь лист бумаги и тот самый, малый, нарисованный "как попало" прямоугольник. Центром прямоугольника считать точку пересечения его диагоналей.
Прочерченная таким образом линия будет делить как площадь листа бумаги пополам, так и площадь малого прямоугольника. А стало быть вся оставшаяся площадь ВНЕ прямоугольника тоже делиться пополам.
Дальше можно легко разделить бумагу "перегибами" вдоль этой линии и контура малого прямоугольника. Это оставлю на любителей "побаловаться с бумагой" .
Здравствуйте, Аноним, Вы писали:
А>Прочертить линию через две точки — центры двух прямоугольников. Прямоугольники: весь лист бумаги и тот самый, малый, нарисованный "как попало" прямоугольник. Центром прямоугольника считать точку пересечения его диагоналей. А>Прочерченная таким образом линия будет делить как площадь листа бумаги пополам, так и площадь малого прямоугольника. А стало быть вся оставшаяся площадь ВНЕ прямоугольника тоже делиться пополам. А>Дальше можно легко разделить бумагу "перегибами" вдоль этой линии и контура малого прямоугольника. Это оставлю на любителей "побаловаться с бумагой" .