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

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

[identity profile] kashnikov.livejournal.com 2010-02-09 09:49 am (UTC)(link)
Да ну? Нам собственно когда давали интеграл Лебега в курсе Математического Анализа, приводили как раз такие примеры. Так что я согласен с [livejournal.com profile] orleans, но добавлю, что примеры вычислительного характера тоже были.