avva: (Default)
[personal profile] avva
Прекрасный набор задачек для программистов (таких, что на интервью задают часто) у [livejournal.com profile] malaya_zemlya.

Date: 2006-01-10 05:04 pm (UTC)
From: [identity profile] leonid-b.livejournal.com
Да, про Ломоносова хорошая задачка. пойду-ка я с работы, подумаю.

Date: 2006-01-10 05:08 pm (UTC)
From: [identity profile] avva.livejournal.com
Думаю, надо начать с телефона, так как-то.

Date: 2006-01-10 05:15 pm (UTC)
From: [identity profile] enemyreader.livejournal.com
Почему с телефона?

Это скорее аналог бумажной почты и газет.

Date: 2006-01-10 05:18 pm (UTC)
From: [identity profile] avva.livejournal.com
Чтобы установить критически сложное для понимания свойство мгновенной передачи информации.

Date: 2006-01-10 05:30 pm (UTC)
From: [identity profile] enemyreader.livejournal.com
Давно установлено всякими хрустальными шарами и говорящими зеркалами :)

Date: 2006-01-10 06:38 pm (UTC)
From: [identity profile] lezze.livejournal.com
вот-вот. этого вполне достаточно должно быть. не суть вопроса обьяснить как действует а в чем конечный эффект. я бы начал говорить о каталогизации сначала, потом о мгновенной передаче.

Date: 2006-01-10 06:15 pm (UTC)
From: [identity profile] leonid-b.livejournal.com
Сложность не в описании техники, а в концепции так называемой "информации". Эта концепция в восемнадцатом веке... сами понимаете...

Date: 2006-01-10 05:20 pm (UTC)
From: [identity profile] strangest.livejournal.com
Часть этих задачек (плюс другие) рассмотрена в книге "Как сдвинуть гору Фудзи" Уильяма Паундстоуна. Там и про процесс приема на работу в Майкрософт есть. :)

Раньше лежала в электронном виде на русском языке на lib.aldebaran.ru, но сейчас ее почему-то убрали. Оригинала на английском не искал.

Date: 2006-01-10 05:27 pm (UTC)
From: [identity profile] ex-ex-annut.livejournal.com
используется стандартная кодировка английского алфавита (a 1 b 2 )
найти английское слово произведения букв которого максимально близко к миллиону
(deleted comment)

Date: 2006-01-10 06:20 pm (UTC)
From: [identity profile] avva.livejournal.com
Самое близкое из того, что есть в моём файле словаря, хотя tetty, упоминаемого ниже, там нет.
(deleted comment)

Date: 2006-01-10 07:15 pm (UTC)
From: [identity profile] avva.livejournal.com
В каком смысле? :)
(deleted comment)

Date: 2006-01-10 08:37 pm (UTC)
From: [identity profile] avva.livejournal.com
А, вот вы о чём. Но всё равно ж придётся со словарём сравнивать, чтобы найти настоящие слова. Нет, не думал об этом. Наверное, есть эффективные алгоритмы, не требующие разложения на множители в общей форме (потому что множество искомых множителей у нас сильно ограничено).

Date: 2006-01-10 06:07 pm (UTC)
From: [identity profile] siludin.livejournal.com
Если можно имена (и вообще все что угодно из /usr/share/dict/words :), то 'tetty' дает ровно миллион.

Date: 2006-01-10 06:46 pm (UTC)
From: [identity profile] simonff.livejournal.com
Извините, тогда уж жаргонное 'titty' окажется впереди.

Мои пять копеек

Date: 2006-01-10 05:45 pm (UTC)
From: [identity profile] raccoon.livejournal.com
Please write code to answer the following problems. Answers will be scored based on correctness, efficiency, and readability. You may only use C/C++ programming language reference materials.
Please don't use CRT, STL, etc. library functions.

1. Implement the C runtime library function strstr. strstr returns a pointer to the first occurrence of strSearch in string, or NULL if strSearch does not appear in string. If strSearch points to a string of zero length, the function returns string. The search does not include terminating null characters.



const char *strstr(const char *string, const char *strSearch)

{

// Insert your implementation here

}



2. Implement the following function for sorting a linked list of integers in ascending order. The function takes a pointer to the head of the list, and returns a pointer to the head of the sorted list. Your function should use only a constant amount of memory. It's prohibited to change the value of ListNode, instead ListNodes must be rearranged.



struct ListNode

{

int value() { return _value; }

ListNode *pNext;

private:

int _value;

};



ListNode* SortList(ListNode *pHead)

{

// Insert your implementation here

}



3. Implement the following function, FindSortedArrayRotation, which takes as its input an array of unique integers that has been sorted in ascending order, then rotated by an unknown amount X where 0 <= X <= (arrayLength - 1). An array rotation by amount X moves every element array[i] to array[(i + X) % arrayLength]. FindSortedArrayRotation discovers and returns X by examining the array. You may be able to do this in less than linear time.



int FindSortedArrayRotation(int *array, int arrayLength)

{

// Insert your implementation here

}

Re: Мои пять копеек

Date: 2007-08-29 12:37 am (UTC)
From: (Anonymous)
Dear Sir,

Did you get an answer to your question?

Date: 2006-01-10 06:29 pm (UTC)
From: [identity profile] dimrub.livejournal.com
У Джоэла тоже интересные статьи были про процесс интервьюирования.

Date: 2006-01-10 07:10 pm (UTC)
From: [identity profile] gde-moi-17-let.livejournal.com
В копилку - мои три копейки: задачки с древнего интервью в Интеле.

***
В ряд построены 100 електрических лампочек с пуговкой выключателя on/off.
Изначально все лампочки выключены.
По очереди бегут 100 гномиков.
1-й включает каждую лампочку.
2-й выключает каждую вторую лампочку.
3-й - меняет нажимает н каждый третий выключатель.
...
Что будет когда все 100 гномиков пробегут?

***
В комнате 3 выключенные лампочки: 1л, 2л, 3л.
Снаружи - три выключателя: 1в, 2в, 3в.
Как, выйдя из комнаты один раз, узнать какой
выключатель соответствует какой лампочке?

Date: 2006-01-10 07:19 pm (UTC)
From: [identity profile] avva.livejournal.com
Хорошие, да. Помню их :)
(deleted comment)

Date: 2006-01-10 08:31 pm (UTC)
From: [identity profile] 109.livejournal.com
первый называет checksum, все остальные вычисляют свой цвет как diff.

Date: 2006-01-10 08:31 pm (UTC)
From: [identity profile] 109.livejournal.com
работает с любым количеством гномиков :-)

Date: 2006-01-10 08:32 pm (UTC)
From: [identity profile] 109.livejournal.com
спасутся все, кроме одного (он тоже может, если случайно совпадёт).
(deleted comment)

Date: 2006-01-10 09:40 pm (UTC)
From: [identity profile] 109.livejournal.com
решение я только что сказал... :-)

троичная система, каждому цвету своё значение.

checksum = сумме всех шапок.
(deleted comment)

Date: 2006-01-11 08:50 am (UTC)
From: [identity profile] besm6.livejournal.com
По нему не надо восстанавливать всю последовательность. Надо - недостающий элемент. Для этого одного разряда вполне достаточно. Младшего, естественно, AKA остатка от деления на 3.

Date: 2006-01-11 01:31 pm (UTC)
From: [identity profile] 109.livejournal.com
ну йолы палы, ты чё, не понимаешь решение задачи, которую сам задал? я не знаю уж, куда подробнее разжёвывать. rolling over checksum, нужной разрядности. в нашем случае - один троичный разряд. каждый гномик, слыша названную шапку, вычитает её из checksum. для вычисления своей шапки нужно вычесть checksum впереди себя из предыдущей (которая включает твою шапку). дошло теперь?
(deleted comment)

Date: 2006-01-11 01:54 pm (UTC)
From: [identity profile] 109.livejournal.com
последний называет сумму. остальные называют шапку, вычисляемую из суммы. это абсолютно точная формулировка и сказал я это в самом первом комменте. вы, наверное, гуманитарий и не привыкли к точным формулировкам?
(deleted comment)

Date: 2006-01-11 02:27 pm (UTC)
From: [identity profile] 109.livejournal.com
не так. гномик вычисляет свою шапку как разность двух чексумм - включающую его шапку и не включающую. чексумма, включающая его шапку равна чексумме, названной первым гномиком минус сумма всех названных шапок.

отстаньте от меня с такими примитивными вопросами, ради бога :-)
(deleted comment)

Date: 2006-01-11 03:09 pm (UTC)
From: [identity profile] 109.livejournal.com
он не запоминает, он апдейтит чексумму когда слышит шапку.

сумма шапок до себя и шапка после никак не помогут вычислить свою шапку.

Date: 2006-01-12 07:48 am (UTC)
From: [identity profile] besm6.livejournal.com
У второй задачи условие сформулировано полностью? Тогда "берем картину мироздания и тупо смотрим, что к чему". Ключевое слово - "смотрим".

Date: 2006-01-12 03:34 pm (UTC)
From: [identity profile] gde-moi-17-let.livejournal.com
На что смотрим? Номера лампочек и выключателей надо поставить в соответствие. Когда вы снаружи, лампочек вам не видно.

Date: 2006-01-12 09:45 pm (UTC)
From: [identity profile] besm6.livejournal.com
Вот последнего утверждения в задаче не стояло... Потому я и спросил про полноту условия.

Date: 2006-01-13 06:17 am (UTC)
From: [identity profile] besm6.livejournal.com
Гм, продолжение допроса с пристрастием. Оговаривается ли в условии:

1. где я сначала нахожусь? (подозреваю, что наивные авторы имели в виду именно это)

2. есть ли персонажи помимо меня? (по умолчанию наивный интервьюер, скорее всего, полагает, что я один, а я бы полагал, что интервьюер в наличии - он ведь вот, передо мной сидит)

3. управляет ли каждый выключатель ровной одной лампочкой, причем из находящихся в комнате, и различными ли лампочками управляют выключатели?

Date: 2006-01-13 07:27 am (UTC)
From: [identity profile] gde-moi-17-let.livejournal.com
Ага - условия нормальные - как в школьных задачах по физике.
(ну типа, температура не -1000, планета - Земля и т.п.)
В том же ключе:

1. В комнате. Потом вышел. Делал что хотел с выключателями.
Вернулся. Ответил.

2. Нет. (Никого, даже самого наивного интервьюера). Адын, совсем адын.

3. Да, однозначное соответствие выключателей лампочкам есть.
Иначе его не просили бы найти. Никаких наёбок в задаче нет.

Date: 2006-01-13 10:03 am (UTC)
From: [identity profile] besm6.livejournal.com
П.1 отчетливо не относится к условиям типа "планета - Земля". Это надо оговаривать. Равно как и ответ на предыдущий вопрос. Два других пункта спрашивались, понятно, по правилу тринадцатого удара.

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

Date: 2006-01-13 04:26 pm (UTC)
From: [identity profile] gde-moi-17-let.livejournal.com
Я - не интервьюер, вам ничего не должна, и никакого решения не вижу.
Впрочем, мне оно и не нужно - я его знаю.
Мне кажется, вы со мной говорите не подобающе; по-снобски как-то;
я вас не знаю, и никаких основаной к тому вам не давала.
Задачки я кинула авве, полагая что он их знает (что так и есть) и
чтобы напомнить славные старые технионовские дни.
А вас я ни о чём не спрашивала. Смените, пожалуйста, тон.

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 29th, 2025 08:13 am
Powered by Dreamwidth Studios