PMT>>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи. PMT>>Заранее благодарю.
V>как посчитать биты в числе, максимально производительным способом?
Неужели и это интересный вопрос?
Re[2]: Наиболее интересные вопросы на собеседованиях
M>Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.
Пацаны, вы чего? Какие ж это интересные вопросы?
Re[3]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, Олег К., Вы писали:
A>>Смех смехом, но когда я уже был в Штатах, то мне на почту написала рекрутерша одного из российских банков и очень настойчиво желала поговорить. В итоге я ей выслал свой американский номер телефона и она позвонила. После распроса про текущее место она задала вопрос, почему я хочу вернуться и работать у них в банке Я чуть не поперхнулся...
ОК>Ну а ты что в ответ?
Да ничего особенного, поинтересовался почему она решила, что я вообще возвращаться собираюсь. — Ну как же, вы же поговорить согласились.
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, volodya777, Вы писали:
PMT>>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи. PMT>>Заранее благодарю.
V>как посчитать биты в числе, максимально производительным способом?
POPCOUNT, а вообще вариантов куча, успевай только считать: Population Count
Re[7]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, blackwater, Вы писали:
M>>>Уверенны? учитывая "максимально производительным способом?"
D>>может он предполагает, что sufficiently smart compiler(TM) догадается о том что делает данный цикл (что, в принципе, не очень сложно..), и подставит то что нужно..
B>Я думаю ждут это: http://en.wikipedia.org/wiki/Hamming_weight
Че то я сразу не подумал насколько серьезную задачу решаю. Углубился в тему... Да это Hamming weight или Population Count. Тут ниже ссылку привели на разные алгоритмы http://chessprogramming.wikispaces.com/Population+Count
В итоге мой код оказался реализацией метода Брайна Кернинга, а он является одной из лучших реализаций этой задачи "this is still one of the fastest approaches for sparsely populated bitboards." (См. ссылку выше).
Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.
Re[2]: Наиболее интересные вопросы на собеседованиях
тс>Мне больше всего по c++ понравилось: тс>Написать пример программы, которая скомпилируется C-компилятором, но не скомпилируется C++-компилятором. Ответ лежит на поверхности, не требует знания никаких нюансов. Я не смог ответить)
так это идиотен-тест
int new = 1;
Re[2]: Наиболее интересные вопросы на собеседованиях
M>"как перемножить 3 на 7 если у нас нет операции умножения ?" Долго не мог понять в каком контексте задавался вопрос, потом уже понял что это была проверка знаний на битовые сдвиги и т.п.
Какие н... битовые сдвиги!
int res = 0;
for(int cnt=0; cnt<3; ++cnt)
res+=7;
Re[2]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, minorlogic, Вы писали:
M>Вспомнил. Недавно спросили "что такое виртуальный деструктор , и в чем его особенности". Я блин долго тупил и не мог понять какие у него особенности, вспомнил тольок что во время выполнения деструктора он ведет себя как невиртуальная функция и вызывает всех предков.
Что курите? Виртуальный деструктор ведет себя именно как виртуальная функция. Единственное назнвчение — убивать объект по указателю приведенному к базовому классу.
Весь топик прочел — одни унылые вопросы
Re[8]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, D. Petrov, Вы писали:
DP>Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.
А через сдвиги вроде быстрее
int fun(int x)
{
int res = 0;
while (x != 0 )
{
res += x & 1;
x >> 1;
}
return res;
}
Re[9]: Наиболее интересные вопросы на собеседованиях
Здравствуйте, Handie, Вы писали:
DP>>Основня идея — "обнуляем младший бит" x&(x-1). Кто изучал\писал ассемблер тот почти навернякак пользовался таким трюком.
H>Младший бит обнуляется x & 0xFE (0xFFFE, 0xFFFFFFFE).
Несовсем корректно выразился — обнуляем младший единичный бит.
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Приветствую.
PMT>Какие самые интересные вопросы на собеседованиях за всё время вашего опыта Вы слышали? Или какие наиболее интересные / необычные задаёте Вы на собеседованиях?
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
PMT>Заранее благодарю.
Чем отличается c# от java, какие преимущества и недостатки у обоих?
Здравствуйте, PlusMyTwitterFace, Вы писали:
PMT>Интересуют, прежде всего, вопросы на вакансию программиста C/C++, а также алгоритмические задачи.
Есть одна задачка, на понимание SQL. Предполагается давать кандидатам, заявившим об отличных знаниях SQL, но на практике я применял его буквально два раза.
Дано:
Резервуар заданного объема с одной in/out трубой известной пропускной способности. На трубе есть кран который может принимать три состояния: in, out, close. Записи об изменениях состояния кранов пишутся в SQL DB в формате: timestamp, новое состояние.
2012-01-01 00:00:00 | in
2012-01-01 00:10:10 | close
2012-01-02 00:05:37 | out
Задача:
Необходимо по этому логу одним SQL запросом получить средний уровень воды в резервуаре если на момент 0 краны закрыты, а резервуар пуст. На три достаточно запроса. На четыре нужен запрос с проверкой граничных условий. На пять -- понимание того что реально происходит в СУБД при выполнении этого запроса и предложения об оптимизации. На пять с плюсом тот же запрос + время которое резервуар простоял пустым + количество воды, которое вылилось из переполненного резервуара. С учетом того, что из-за несовершенства аппаратуры одно и то же событие может быть зарегистрировано несколько раз подряд с отличающимися отметками времени. Например так:
2012-01-01 00:00:00 | in
2012-01-01 00:10:10 | close
2012-01-01 00:21:00 | close
2012-01-01 00:23:30 | close
2012-01-02 00:05:37 | out
Задачка, если что, из реальной практики.
Re[2]: Наиболее интересные вопросы на собеседованиях
PMT>>Заранее благодарю. BH>Чем отличается c# от java, какие преимущества и недостатки у обоих?
А чего интересного то?
С# только винда (моно для любителей фетишизма), стандартная платформа для гуя на винде.
Java — кроссплаформенная штука, чаще исползуется на серваках
Re[2]: Наиболее интересные вопросы на собеседованиях
M>Есть одна задачка, на понимание SQL. Предполагается давать кандидатам, заявившим об отличных знаниях SQL, но на практике я применял его буквально два раза.
90% кандидатов заявлявших что отлично знаю SQL не могли сказать что делает
SELECT * FROM table t1, table t2;
Многие говорили что это невалидный SQL, другие считали что это inner join.
Re[2]: Наиболее интересные вопросы на собеседованиях
>С учетом того, что из-за несовершенства аппаратуры одно и то же событие может быть зарегистрировано несколько раз подряд с отличающимися отметками времени. Например так:
M>2012-01-01 00:00:00 | in M>2012-01-01 00:10:10 | close M>2012-01-01 00:21:00 | close M>2012-01-01 00:23:30 | close M>2012-01-02 00:05:37 | out
M>Задачка, если что, из реальной практики.
А какое время события close в данном случае брать за рабочее? Первое?
Задачка любопытная, можно помучать людей
Только самому сначала сделать
Re[2]: Наиболее интересные вопросы на собеседованиях