Juan-Carlos Gandhi (
juan_gandhi) wrote2010-02-08 02:56 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
с интервью
Интервьюировал тут интересного француза, из-под Гренобля - Еколь Политекник, потом Бёркли. Мой первый вопрос - хрен ли тут у нас на посёлке делать после прекрасных предгорий? А тут типа у нас жизнь (а там типа нету). Молодёжь!
Короче, задал ему недавно тут пролетавшую задачу - сумму максимальных нечётных делителей для чисел от 1 до N. Сначала написал джавный код, который, будь у нас tail recursion (у него второй язык CAML), был бы ничо бы.
Я его попросил пооптимизировать. Нарисовал алгоритм, пропорциональный N. Я предложил поискать алгоритм, пропорциональный логарифму N. И тут он нарисовал чудесную вещь.
Он нарисовал график, где по горизонтальной оси N, а по вертикальной - значения, которые он складывает (ну понятное дело, логарифмы складывает). По горизонтали N столбиков. Или, по вертикали, log2(N) полосок. После чего решил взять, да интегрировать не по x, а по y. Так что сумм у нас будет всего log2(N), а значения, что суммируются - ну не биг дил посчитать.
Ребята, я такой фокус первый раз вижу! Наглядно донельзя: на графике.
Остаток интервью допрашивал его про метод Годунова - так, чтоб языком почесать.
Ну дай бог он к нам согласится.
Короче, задал ему недавно тут пролетавшую задачу - сумму максимальных нечётных делителей для чисел от 1 до N. Сначала написал джавный код, который, будь у нас tail recursion (у него второй язык CAML), был бы ничо бы.
Я его попросил пооптимизировать. Нарисовал алгоритм, пропорциональный N. Я предложил поискать алгоритм, пропорциональный логарифму N. И тут он нарисовал чудесную вещь.
Он нарисовал график, где по горизонтальной оси N, а по вертикальной - значения, которые он складывает (ну понятное дело, логарифмы складывает). По горизонтали N столбиков. Или, по вертикали, log2(N) полосок. После чего решил взять, да интегрировать не по x, а по y. Так что сумм у нас будет всего log2(N), а значения, что суммируются - ну не биг дил посчитать.
Ребята, я такой фокус первый раз вижу! Наглядно донельзя: на графике.
Остаток интервью допрашивал его про метод Годунова - так, чтоб языком почесать.
Ну дай бог он к нам согласится.
no subject
Для N=20 это 1+1+3+1+5+3+7+1+9+5+11+3+13+7+15+1+17+9+19+5 = 136?
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
s1 = s0 + "a" + s0 = "a"
s2 = s1 + "b" + s1 = "aba"
s3 = s2 + "c" + s2 = "abacaba"
...
s26 = "...z..."
Написать функцию, которая будет возвращать символ в данной позиции s26 .
no subject
(no subject)
(no subject)
(no subject)
no subject
no subject
no subject
no subject
no subject
no subject
(no subject)
no subject
А сколько времени Вы бы дали интервьюируемому на решение задачи про нули в факториале и на задачу про сумму делителей?
no subject
И, более того, я точно знаю, что эту задачу очень сложно решить, если ты не проходил (или не очень хорошо усвоил) материал про делимость. Уж и не знаю даже, а насколько это хороший индикатор способностей кандидата.
no subject
no subject
Я, кстати, понимаю, что именно вы хотели сказать, но если не следить за корректностью излагаемого, то получится примерно такая же белиберда, как и в посте топикстартера.
no subject
no subject
На самом деле если выписать последовательность наших слагаемых на бумажке, то видно, что это просто напросто набор последовательностей 1, 3, 5, 7... вложенных друг в друга совершенно очевидным образом. Если вычеркнуть "самую верхнею" подпоследовательность 1, 3, 5, 7... (т.е. через одну), то оставшаяся подпоследовательность будет иметь тот же самый вид. Фрактал, понимаш :)
А решение из этого - очевидно. Берем сумму 1, 3, 5, 7... до N (арифметическая прогрессия), прибавляем сумму 1, 3, 5, 7... до N/2, затем до N/4 и т.д. до победного конца.
no subject
no subject