Здравствуйте, Sap78, Вы писали:
S>Здравствуйте, мыщъх, Вы писали:
ПМ>>>ИМХО нет смысла давать получасовую задачу, особенно если в процессе её решения не о чем разговаривать с кандидатом. Задача неразрешима, если число — 0. М>>в этом случае функции next_bigger_num(x)/prev_lower_num(x) должны вернуть ошибку, не?
S>А какой результат должна вернуть prev_lower_num(1)?
ошибку, очевидно. точно как next_bigger_num(0xFFFFFFFF)
речь не про это. чисто для разминки мозгов мне задачка показалось интересной (задачу придумал не я), но во-первых, это она мне интересна, потому что я вообще люблю с битами перепихиваться, а, во-вторых, даже при всей моей любви к битам не могу представить себе практического применения решения в одну строку. с преобразованием битов в строку и последующими операциями над ней на питоне -- задача вообще решается влет. причем, код ясен и понятен даже ламеру. а вот шаманство на уровне битовых операций -- оно вообще непонятно как работает и насколько корректно обрабатывает "пограничные" ситуации.
считаю, что под такую задачу можно искать или матерых хакеров, которые это делают в уме (ну в частности, на вопрос что сие значит (x & ( x + 1)) я ответил не раздумывая. меня даже плюс не смутил (в реальной жизни там минус), но это не потому, что у меня мозги работают с космической скоростью, а потому что этот шаблон я регулярно вижу на протяжении всей моей жизни.
а вот вопрос: "какое максимальное кол-во белых и черных коней можно разместить на 8x8 доске, чтобы они не угрожали друг другу и кол-во белых и черных было одинаковым" поставил меня в тупик. аналом чувствую -- задача из серии "классиков", но решение мне неизвестно. подозреваю, что 64, но неуверен. но это ж вообще шахматы. нечестно давать их на программировании...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.