juan_gandhi: (Default)
Juan-Carlos Gandhi ([personal profile] juan_gandhi) wrote2010-02-08 02:56 pm

с интервью

Интервьюировал тут интересного француза, из-под Гренобля - Еколь Политекник, потом Бёркли. Мой первый вопрос - хрен ли тут у нас на посёлке делать после прекрасных предгорий? А тут типа у нас жизнь (а там типа нету). Молодёжь!

Короче, задал ему недавно тут пролетавшую задачу - сумму максимальных нечётных делителей для чисел от 1 до N. Сначала написал джавный код, который, будь у нас tail recursion (у него второй язык CAML), был бы ничо бы.

Я его попросил пооптимизировать. Нарисовал алгоритм, пропорциональный N. Я предложил поискать алгоритм, пропорциональный логарифму N. И тут он нарисовал чудесную вещь.

Он нарисовал график, где по горизонтальной оси N, а по вертикальной - значения, которые он складывает (ну понятное дело, логарифмы складывает). По горизонтали N столбиков. Или, по вертикали, log2(N) полосок. После чего решил взять, да интегрировать не по x, а по y. Так что сумм у нас будет всего log2(N), а значения, что суммируются - ну не биг дил посчитать.

Ребята, я такой фокус первый раз вижу! Наглядно донельзя: на графике.

Остаток интервью допрашивал его про метод Годунова - так, чтоб языком почесать.

Ну дай бог он к нам согласится.

[identity profile] andy-scott.livejournal.com 2010-02-08 11:17 pm (UTC)(link)
Шикарно. Просто шикарно. Очень заинтересовало, потому что со слов ничего толком не понял, но интересно же! :)

[identity profile] ygam.livejournal.com 2010-02-08 11:19 pm (UTC)(link)
Задачка

Для N=20 это 1+1+3+1+5+3+7+1+9+5+11+3+13+7+15+1+17+9+19+5 = 136?

[identity profile] kashnikov.livejournal.com 2010-02-08 11:22 pm (UTC)(link)
EP, это вам не хухры мухры. Java в EP теперь тоже есть :)

[identity profile] itman.livejournal.com 2010-02-08 11:22 pm (UTC)(link)
Похоже на правду.

[identity profile] ygam.livejournal.com 2010-02-08 11:24 pm (UTC)(link)
Ну тогда нужно суммировать все нечетные числа от 1 до N, все делящиеся на 4 с остатком 2, все делящиеся на 8 с остатком 4, и т. д.

[identity profile] kashnikov.livejournal.com 2010-02-08 11:25 pm (UTC)(link)
А Вы, кстати, вроде МехМат заканчивали?

[identity profile] itman.livejournal.com 2010-02-08 11:27 pm (UTC)(link)
Ну да, получается нужно просуммировать log N таких сумм.
Edited 2010-02-08 23:28 (UTC)

[identity profile] ygam.livejournal.com 2010-02-08 11:30 pm (UTC)(link)
Мне 3 года назад на интервью в Гугеле задали вопрос: сколько нулей будет в десятичной записи n! ? Я посчитал так же.

[identity profile] ivan-gandhi.livejournal.com 2010-02-08 11:38 pm (UTC)(link)
Тебя Белла интервьюировала, что ли? :)

[identity profile] ivan-gandhi.livejournal.com 2010-02-08 11:39 pm (UTC)(link)
Он начинал с Камла. Джаву, наверное, уже в Бёркли подхватил.

[identity profile] ivan-gandhi.livejournal.com 2010-02-08 11:39 pm (UTC)(link)
Нет; матмех. Но фокуса такого не знал.

[identity profile] orleanz.livejournal.com 2010-02-08 11:41 pm (UTC)(link)
Послушайте, но идея интегрировать не по Х, а по У - это ведь фундаментальная математическая идея, которую всем на первом курсе мехмата обьясняют, в связи с интегралом Лебега. Есть интеграл Римана, это "когда по Х", и Лебега, "когда по У". По игреку в некоторых случаях проще, потому что (хотя это уже не применимо к программироованию) - множество точек, где функция принимает некое определенное значение может быть "неизмеримыми", но это не имеет значения, если значение=0, так что его просто отбрасывают, и берут оставшуюся (уже измеримую) часть, где знечение не равно нулю.

[identity profile] ygam.livejournal.com 2010-02-08 11:41 pm (UTC)(link)
Да. It's a small world.

[identity profile] ygam.livejournal.com 2010-02-08 11:42 pm (UTC)(link)
Я свою коронную задачку "abacaba" в ЖЖ рассказывал?

[identity profile] spamsink.livejournal.com 2010-02-09 12:01 am (UTC)(link)
Я такой не помню.

[identity profile] ygam.livejournal.com 2010-02-09 12:06 am (UTC)(link)
s0 = ""
s1 = s0 + "a" + s0 = "a"
s2 = s1 + "b" + s1 = "aba"
s3 = s2 + "c" + s2 = "abacaba"
...
s26 = "...z..."

Написать функцию, которая будет возвращать символ в данной позиции s26 .

[identity profile] spamsink.livejournal.com 2010-02-09 12:17 am (UTC)(link)
Да, извратить простую задачку до неузнаваемости надо уметь.

[identity profile] ygam.livejournal.com 2010-02-09 12:19 am (UTC)(link)
Я эту задачку придумал сам (точнее, [livejournal.com profile] adagio_burner мне рассказывал про своего одноклассника, который любил петь: "abacabadabacabaeabacabadabacaba...").

Так, что ли?

[identity profile] spamsink.livejournal.com 2010-02-09 12:21 am (UTC)(link)
unsigned f(unsigned x) {
    return x <= 1 ? x : ((x+1)/2)*((x+1)/2) + f(x/2);
}


[identity profile] vit-r.livejournal.com 2010-02-09 12:44 am (UTC)(link)
Эх! Это ж сколько лет назад мне для чего-то был надобен интеграл...

А единственный тут, кто как-то подошёл со словами "У меня один очень глупый вопрос...", был французом...

[identity profile] ivan-gandhi.livejournal.com 2010-02-09 01:09 am (UTC)(link)
Но не с целью сократить вычисления с O(N) до O(ln(N)).

Re: Так, что ли?

[identity profile] ivan-gandhi.livejournal.com 2010-02-09 01:09 am (UTC)(link)
Оно. :)

[identity profile] itman.livejournal.com 2010-02-09 01:31 am (UTC)(link)
Нулей справа, или всего? :-)

[identity profile] ygam.livejournal.com 2010-02-09 01:32 am (UTC)(link)
Справа, конечно.

[identity profile] itman.livejournal.com 2010-02-09 01:32 am (UTC)(link)
Я уж испугался :-)

Page 1 of 3