29 июн. 2009 г.

Нечёткие формулировки

Использовать две цифры
Есть стандартные моменты, которые трактуются нами почти однозначно. Даже если что-то иногда явно не сформулировано, то мы автоматически принимаем решение, доопределяя ситуацию. И потом не всегда можем чётко вспомнить, что было известно, а что было выдумано для полноты картины.

Есть классический анекдот о том, что человек - не робот:
Жена программиста снаряжает его в магазин: «Купи булку хлеба, а если будут яйца, то возьми десяток». Соответственно, в магазине программист задаёт логичный вопрос: «Скажите пожалуйста, у вас в продаже яйца есть?», на что получает утвердительный ответ. Далее он просит десять булок хлеба.

Но мы с вами отлично знаем, что так не бывает (у большинства :). Люди догадываются о контексте, дополняют недостающие моменты, поэтому проблемы из-за лишней лаконичности и сложного синтаксиса бывают редко.

Приведу в качестве примера задачку, которая мне очень нравится неожиданностью постановки и продуманностью ловушек:

Для ребуса УДАР+УДАР=ДРАКА найти основания систем счисления, в которых он имеет решение.

После этого не требуется объяснять, что одинаковым буквам ребуса соответствуют одинаковые цифры, а разным - разные, не надо говорить, что решением ребуса является такая замены букв на цифры, при котором выражение становится верным. Потому что все это или знают, или сразу догадываются. Заметьте, явно нигде не оговорено, а решить задачку могут многие (желающим я готов подтвердить или опровергнуть правильность их ответа в комментариях или по почте).

Теперь возвращаемся к исходной теме - к додумыванию неопределённого. В самом начале заметки предложена иллюстрация к задачке с очень простой формулировкой: «Использовать две цифры». Здесь тоже ничего не надо объяснять, потому что и так всё понятно, так ведь?

Казалось бы, человек не должен справляться с этой задачей, потому что нет критерия правильности. Как самого себя проверить, даже если нашёл что-то похожее на ответ? Какие действия применяются к цифрам в ячейках? Компьютеру это не объяснить! Но многие олимпиадники подтвердят, что правильное решение «само выглядит правильным» (у хороших задач, конечно). То есть, если нашёл его, то уже уверен, что как раз оно верное. Поэтому люди с этой задачкой могут справиться.

Получается, что есть какой-то зыбкий субъективный критерий правильности, который компьютеру не объяснить, но десятки тысяч людей во всём мире имеют схожие взгляды на него, поэтому этот спорт существует. И Россия, кстати, традиционно имеет в нём успехи (в прошлый раз китайцы добились наилучшего возможного результата, сместив нашу сборную на второе место, но по количеству золотых медалей российские школьники всех обогнали).

Поэтому я предлагаю подумать об этой задачке, чтобы потом со смыслом проанализировать различные её разборы.

Как обычно бывает с подобными задачами, прошу не публиковать ответы в комментариях хотя бы ближайшие сутки, чтобы случайно не лишить остальных читателей удовольствия от поиска решения.

38 комментариев:

  1. Первую, думаю, что решил.
    Оснований систем счисления много. Существует итеративная формула.

    ОтветитьУдалить
  2. Mmd, если хотите, то можете проверить, написав свой ответ мне на почту mytribune АТ yandex.ru. Но Ваша формулировака подсказывает мне, что с высокой вероятностью найдены не все решения :)

    ОтветитьУдалить
  3. Думается мне, что основание системы счисления - от 2 до бесконечности. В одиночку-то драться неудобно :)

    ОтветитьУдалить
  4. Avialaynen, поскольку разных букв в задачке пять, то можно поднять нижнуюю оценку с двух до пяти :)

    Кстати, в этой заметке есть и вторая задачка - про квадрат 3х3 и две цифры.

    ОтветитьУдалить
  5. Я имел в виду, что формулу про удары и драку можно понимать буквально ;)

    ОтветитьУдалить
  6. dmitrij, спасибо за интересную версию!

    ОтветитьУдалить
  7. Анонимный26.09.2009, 17:26

    - - 30
    - 19 -
    30 - -

    ОтветитьУдалить
  8. Уважаемый аноним, Ваше решение понятно и интересно, но в нём использованы не две разных цифры, а два разных числа :)
    А цифр Вы использовали четыре: 0, 1, 3, 9.

    ОтветитьУдалить
  9. Прошу прощения, недопонял. Исправляюсь.

    10 10 10
    10 -1 10
    10 10 10

    ОтветитьУдалить
  10. Михаил, спасибо за интересную версию! Такой я ещё не видел.

    ОтветитьУдалить
  11. Илья, а есть еще варианты решения с двумя цифрами? Мне показалось, что это единственно возможное.

    ОтветитьУдалить
  12. Михаил, выше dmitrij предложил вариант с единицей и восьмёркой. Я в своё время придумал с единицей и девяткой. Недостаток обоих этих решений - не все клетки заполнены. Но это требование в условии не оговорено.

    ОтветитьУдалить
  13. Похоже, дожали задачку.

    Arthaus, согласитесь, что достаточно придумать это решение, чтобы отказаться от поиска других вариантов! Потому что оно выглядит правильным :)

    ОтветитьУдалить
  14. Анонимный02.02.2010, 12:02

    кажется, что конкретный пример к ударам это 8126

    ОтветитьУдалить
  15. Уважаемый аноним, в этой задаче спрашивается, в каких системах счисления существует решение, а не хотя бы один пример :)

    ОтветитьУдалить
  16. Анонимный05.02.2010, 23:15

    12 1/2 - 11/2 - 12
    11/2 - 1 - 12 1/2
    12 - 12 1/2 - 11/2

    Не очень удачная форма записи, здесь фигурируют числа 12,5; 5,5; 12; 1

    ОтветитьУдалить
  17. A  A  A
    A FF A
    A  A  A
    в хексе по модулю 0x100 :)

    ОтветитьУдалить
  18. Тоже оригинально вышло. Не увядает задачка-то :)

    ОтветитьУдалить
  19. Первую задачу я сначала поняла так, что в каждой клеточке должна стоять цифра. Но тогда сумма 30 быть не может. Тогда я сделала вывод, что из цифр можно составлять числа, но у меня снова получилось, что решения нет. Наконец, я решила оставить одну из клеток пустой, и у меня получилось:

    11-8-11
    8-_-11
    11-11-8

    Была ещё мысль про знаки действий, но я сочла, что, во-первых, это наверняка бы оговаривалось, во-вторых, тогда задача стала бы совсем уж ерундовой.

    В числовом ребусе я ничего такого не заметила. Обычная позиционнная система счисления, одинаковые буквы -- одинаковые цифры, разные -- разные, ни одно многозначное число не начинается с нуля, знаки "+" и "=" имеют своё обычное значение. Имелось в виду, что, что-нибудь другое? Если нет, то где же здесь "неожиданность" и "ловушки"?

    Ребус имеет решение при основании семь, а так же при основаниях 10, 14, 18 и так далее (то есть таких, которые делятся на два, но не на четыре и при этом не меньше 10). Если хотите, могу прислать решение.

    ОтветитьУдалить
    Ответы
    1. > Первую задачу я сначала поняла так, что в каждой клеточке должна стоять цифра. Но тогда сумма 30 быть не может.
      Это не совсем так. Выше в комментариях предложено решение, в котором в каждой клеточке стоит ровно одна цифра, а всего использовано только две различных цифры.

      > В числовом ребусе я ничего такого не заметила
      Здорово, что Вам легко даются такие задачи!

      > Если хотите, могу прислать решение.
      Только если Вы сами бы хотели, чтобы я его посмотрел. Ответ Вы назвали верный (кстати, семёрку многие не замечают, что лишний раз говорит о Вашей высокой внимательности), поэтому, скорее всего, решение тоже имеете хорошее.

      Удалить
    2. 1) По обычным правилам игры цифры или числа в такого рода задачах складываются. Решение, на которое Вы дали ссылку, я видела и заценила, но моя собственная мысль, какое именно из обычных правил нарушил автор, пошла другим путём. А вот решение юзера Ilya K мне непонятно вовсе.

      2) Просто я решала числовые ребусы и раньше. И даже сама их сочиняла. Так что мучительно постигать правила игры не пришлось. Кстати, задача с ребусом сложнее задачи с квадратом в том смысле, что тут требуется проверить все возможности, а не просто обнаружить какой-нибудь вариант, но при этом мне не пришлось мучительно гадать, в чём же автор нарушил правила игры.

      3) Узнать, как оно понравится Вам, хотела бы. Стоит ли выкладывать его здесь в комментах -- не уверена. Тема старая, но Вы и в старые завлекаете новых юзеров. ;) Можно обсудить моё решение по почте?

      Удалить
    3. > А вот решение юзера Ilya K мне непонятно вовсе.
      Он предлагает работать в шестнадцетеричной системе (там A = 10 в десятичной, а FF = 255 в десятичной), но при этом работать по модулю 256. Т.е. любая операция (а нас тут интересует только сложение), дополняется взятием остатка от деления на 256. Например, А + FF + A = (10 + 255 + 10) mod 256 = 19.

      > Можно обсудить моё решение по почте?
      Да, конечно, пишите на адрес mytribune АТ yandex.ru.

      Удалить
    4. Значит хексом Илья называет 16-ричную систему счисления? А почему тогда "по модулю 0x100", а не просто "по модулю 100"? Это описка или что-нибудь значит?

      Удалить
    5. Да, это стандартное название.
      А префикс "0x" традиционно означает, что следующее за ним следует понимать, как шестнадцатеричное число (см. http://en.wikipedia.org/wiki/0x).

      Письмо Ваше получил, в ближайшее время отвечу.

      Удалить
    6. Теперь понятно. Илья, наверное, программист с профессиональной деформацией личности. :)

      Но хочу всё-таки уточнить, что никакой ихний инглиш я ни хрена не понимаю, в связи с чем мне пришлось заменить en на ru.

      Удалить
  20. З.Ы. Кстати, с пустыми клетками я нашла для квадрата ещё два решения (не считая отражений относительно диагонали).

    19-_-11
    _-_-19
    11-19-_

    18-1-11
    1-_-18
    11-18-1

    ОтветитьУдалить
    Ответы
    1. Спасибо за новые варианты решения этой задачки!

      Удалить
    2. Извините, слово "ещё" здесь лишнее. Опять я чукча-писатель... Не "ещё два", а просто два, причём один из них есть в коммменте другого юзера.

      Удалить
    3. З.Ы. Из комментов поняла, что второе моё решение Вам тоже было известно. Но у меня появилась ещё одна мысль...

      Удалить
    4. Если предположить, что неизвестные числа записаны в другой системе счисления, чем известные, или что имеется в виду арифметика остатков, задача становится совсем ерундовой: достаточно взять двоичную систему, где цифр и так всего две, или вычеты по модулю два. Например:

      1000-1010-1100
      1010-1-1000
      1100-1000-1010 (в двоичной системе)

      0-0-0
      0-1-0
      0-0-0 (по модулю два)

      А вот если допустить, что все числа, включая неизвестные, записаны в одной и той же НСС, но с неизвестным основанием, найти решение не так просто, но можно. У меня получилось, что тогда возможны четыре решения. Впрочем, я пока ещё жду ответа на предыдущее письмо. ;)

      Удалить
    5. Приношу извинения, было много неотложных дел.
      Показывайте свои четыре решения, заинтриговали :)

      Удалить
  21. Ну вот, мне пришёлв голову ещё один вариант. Если не указано иного, система десятичная, но цифры можно ставить и нижним (или и нижним, и верхним) индексом. Ведь если писать от руки на бумаге, дополнительных символов для этого не надо.

    Например так (я не знаю, сработает ли здесь тэг нижнего индекса и на всякий случай обозначу его круглыми скобкам):

    11-111(2)-12
    111(2)-1-11
    12-11-111(2)

    Может всё-таки объясните, ЧТО имел в виду автор? А то я просто теряюсь в догадках!

    ОтветитьУдалить
    Ответы
    1. Мне кажется, самое естественное решение - использование римских цифр. Собственно, придумав это решение, человек обычно чувствует, что именно его и ожидает автор, т.к. оно не предполагает каких-либо действий (например, использование сложения в остальных вариантах естественно (т.к. есть прямая ассоциация с магическими квадратами), но обойтись без него было бы гораздо естественнее), использует ровно две цифры. Короче, выглядит хорошо. В этом и плюс, и минус недостаточно формализованных задачек.

      Удалить
    2. Я не понимаю, откуда Вы взяли, что "придумав это решение, человек обычно чувствует, что именно его ожидает автор". Потому что оно "не предполагает каких-либо действий"? Но откуда Вы взяли, что автор ожидал именно этого? "Обойтись без сложения было бы гораздо естественнее"? А почему Вы считате, что это естественнее? Мне вот самым естественным показалось решение с индексами. То, что указанный Вами вариант Вам больше всего нравится, ещё не значит, что автор предполагал именно его.

      У меня были случаи, когда я находила решение лучше авторского, во всяком случае, со своей точки зрения. Вот пример: http://mi3ch.livejournal.com/1984076.html?thread=106787148#t106787148

      Удалить
    3. В заметке специально были сделаны реверансы на тему «задачи недоопределены, поэтому понять их условие и проверить правильность решения может только человек». У нас нет жёстких правил, но есть ощущения. И у меня ощущение, что решение с римскими цифрами самое изящное. Но остальные мне тоже нравятся :)

      Спасибо за ссылку на изящное решение задачи про блогера и букву «c»!

      Удалить