Хорошую задачу на алгоритмическое собеседование нашёл.
Написать функцию, которая для натурального n выдаст количество «конечных» нулей в десятичной записи n! (эн факториал).
Над экзаменатором издеваться можно?
f:+/1_{x%5}\
f 1000
249
Короче не сумел :-)
Я понял только, что это не на брейнфаке :) Но это не точно.
(
отсюда)
... Проблемы
(
Read more... )
Comments 38
PS. Я так понимаю, главная проблема ареоформирования Земли - это "где Земля, а где Марс?" Где Гея, а где Арес?…
PPS. "Почему белые медведи не едят пингвинов?" ;-)
Reply
А проблемы, видимо, противоположны проблемам терраформирования Марса. Убрать куда-то лишнюю атмосферу, из оставшейся убрать лишний кислород, большую часть воды куда-то девать. Ещё всё это как-нибудь остудить немножко. Задачу уменьшить гравитацию, видимо, не ставим -- всё равно непонятно, как ещё решать, а к этой привыкнуть можно. Что ещё? От магнитного поля как-то избавиться? Периоды суточного вращения и наклоны осей у нас близкие, удобно.
Оффтопик: ты малайзийскую (на самом деле совместную) Войну Миров смотрел? Вот эту? Очень странная штука, но если любишь стимпанк, аниме и ретро-политические шуточки кагбе столетней давности, то вполне неплохо.
... Мой хвост отправился в Улан-Удэ ...
Reply
Хорошая мысль. Но степени десятки всё равно придётся считать отдельно.
> А проблемы, видимо, противоположны проблемам терраформирования Марса. Убрать куда-то лишнюю атмосферу, из оставшейся убрать лишний кислород, большую часть воды куда-то девать. Ещё всё это как-нибудь остудить немножко. Задачу уменьшить гравитацию, видимо, не ставим -- всё равно непонятно, как ещё решать, а к этой привыкнуть можно. Что ещё? От магнитного поля как-то избавиться? Периоды суточного вращения и наклоны осей у нас близкие, удобно.
:-D
> Оффтопик: ты малайзийскую (на самом деле совместную) Войну Миров смотрел? Вот эту? Очень странная штука, но если любишь стимпанк, аниме и ретро-политические шуточки кагбе столетней давности, то вполне неплохо.
Не смотрел. Спасибо, учту.
Reply
... Сычово пространство лихорадочно сосредоточивалось ...
Reply
Попереписываюсь с твоей фортуной.
Представил себе статью с названием "проблемы ареоформирования Земли" изданную этак перед Первой Мировой.
И в ней список литературы
А. Богданов "Красная Звезда"
К. Лассвиц "На двух планетах"
Г. Уэллс "Война миров".
А автор М.С. Лось.
Reply
Мы как-то в ЖЖ Белашей обсуждали некоторые возможные неувязки в "Аэлите" (от физики до политики), и какой фанфик из этого можно сделать. Жаль тебя там не было.
... Векторы прерываний были завязаны узлом ...
Reply
Я его тоже совершенно неожиданно для себя недавно открыл, когда стал в связи с сюжетом про попаданку в революционную среду прорабатывать работы Коллонтай. А у нее там оказался обзор про женские образы во всякой литературе. Оттуда на Лассвица и вышел.
Reply
Reply
Вроде "терраформирование" устойчивый термин.
... One who shaves on the run ...
Reply
Reply
Reply
... Ну как ты в приличном обществе покажешь на пальцах число 132? ...
А как предполагается делать это неприлично?
Я вроде знаю один приличный способ, но он непонятный. На пальцах можно считать "по-эльфийски", двенадцатиричная система, два разряда.
Reply
Ну там явно предполагалась двоичная система и ooIoo ooIoo.
... Берегитесь метафорической деформации! ...
Reply
Вот честно, не знала, что так можно. В восторге. Спасибо.
Тогда да, "эльфийский" вариант приличнее.
Reply
С другой хватает не знающих математику программистов. Часть из них не тупые и как программисты вполне себе. Плюс такой человек решит задачу тупым счетом и попутно станет понятно, умеет ли он работать с библиотеками длинной арифметики либо счет будет совсем не тупой и он таки знает математику, может и с другого бока. Выступит плохо по всем фронтам - тоже сигнал.
С третьей, если цель завалить - можно попросить найти первую ненулевую цифру справа. Причем сделать это на салфетке. [это делается чуть сложнее, чем посчитать число конечных нулей, но вряд ли кто-то придумает эффективный простой алгоритм с листа на собеседовании]
Reply
Reply
Например на числе 13 :)
13 много, 5 хватит. 5!=120 = 8*3*5; 8*3=24 --> 2=4!!!
Reply
2*3*4*5*6*7*8*9*10*11*12*13
Убираем два нуля
3*4* 6*7*8*9* 11*12*13
Отбрасываем старшие цифры
3*4* 6*7*8*9* 1 * 2* 3
Раскладываем на степени 2,3,7
3 * (2^2) * (2*3) * 7 * (2^3) * (3^2) * 2 * 3
2^7 * 3^5 * 7
Периоды последней цифры степеней двойки, тройки и семерки - 4 (с исключением 2^4 неконгруэнтно 2^0), поэтому берем степени по модулю 4
2^3 * 3^1 * 7
Получаем последнюю цифру 8, как и должно быть.
Все степени при 2, 3 и 7 ведут себя совершенно предсказуемым образом с ростом N, главное - чтобы хватило салфетки, времени и дотошности.
Reply
Leave a comment