Меченые шарики

Задача

Имеется 11 шаров — 5 красных и 6 белых. Известно, что один красный шар и один белый шар радиоактивны. Про любую группу шаров за одну проверку детектором можно узнать, есть ли в ней хотя бы один радиоактивный шар (но нельзя узнать, сколько их). Можно ли за 5 проверок выявить оба радиоактивных шара?


Подсказка 1

Убедитесь, что если проверять шары каждого цвета отдельно, то на обнаружение каждого радиоактивного шара придется затратить 3 проверки.


Подсказка 2

Чтобы сократить общее число проверок с 6 до 5, в первую (или вторую) проверку можно взять и красные, и белые шары. Попробуйте понять, сколько именно шаров каждого цвета необходимо брать.


Решение

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

Как и многие задачи о поиске фальшивой монеты, об угадывании задуманного числа и т.п., эта задача решается не «методом тыка», а с помощью заранее продуманного алгоритма действий. Этот алгоритм должен быть таким, чтобы при каждом исходе очередного действия можно было достичь цели (обнаружить оба радиоактивных шара) за оставшееся количество действий.

Прежде чем описывать конкретный алгоритм, сформулируем некоторые важные его свойства.

1) Назовём вариантом каждую пару (красный шар, белый шар), в которой оба шара могут быть радиоактивными. Вначале у нас есть 5 · 6 = 30 различных вариантов. Цель алгоритма — свести оставшиеся варианты к единственному.
2) Любая проверка даёт один из двух исходов: «+» — среди проверенных шаров есть радиоактивные, и «–» — среди проверенных шаров нет радиоактивных. Исход «–» означает, что оба радиоактивных шара остались среди тех, которые в этой проверке не участвовали.
3) Если до проверки имелось K возможных вариантов, то после неё хотя бы в одном из исходов останется не меньше чем ]K/2[. Здесь квадратные скобки наружу ]...[ обозначают функцию «потолок» (калька с английского “ceiling”; см.: ceiling function) — округление числа вверх до ближайшего целого.
4) Из предыдущего свойства сразу следует, что если число оставшихся вариантов больше, чем степень двойки 2d, то не существует алгоритма, позволяющего решить задачу за d проверок.

На этом месте, пожалуй, стоит задержаться. Итак, вначале у нас есть 30 вариантов и возможность сделать 5 проверок на радиоактивность. Может быть, эта задача изначально неразрешима? К счастью, это не так: 25 = 32 > 30. Но чтобы не оказаться в неразрешимой ситуации после первой же проверки, нам нужно делать ее так, чтобы после каждого из исходов, и «+», и «–», осталось не более 16 вариантов (а значит, и не менее 14). Проще сосчитать варианты для исхода «–»: если в проверке не участвовали r1 (от слова “red”) красных и w1 (от “white”) белых шаров, то исходу «–» соответствуют ровно r1 ∙ w1 вариантов. Чтобы правильно определить первый шаг алгоритма, мы должны рассмотреть три возможных случая:

А. r1 ∙ w1 = 16. Поскольку r1 ≤ 5 и w1 ≤ 6, то r1 = 4 и w1 = 4. То есть проверяться должны все остальные — один красный и два белых шара.
Б. r1 ∙ w1 = 15. Здесь возможны два варианта для пары (r1w1): (3, 5) или (5, 3). Первый вариант означает проверку двух красных и одного белого, а второй — проверку только трех белых шаров.
В. r1 ∙ w1 = 14. Такое равенство невозможно, так как ни r1, ни w1 не могут быть равны 7.

Остановимся на каком-нибудь одном из трёх случаев. Например, на случае Б. Итак,

Шаг 1. Проверим три (любых) белых шара.

Если детектор покажет, что среди них есть радиоактивный, то остальные три белых шара можно «исключить из числа подозреваемых», а если детектор покажет, что радиоактивности нет, то мы поймём, что среди этих трёх шаров точно нет радиоактивных. В любом из двух случаев у нас останется ровно 15 исходов: 5 (красных) × 3 (белых).

Что делать дальше? Продолжим анализ. Пусть во второй проверке не участвовали r2 ≤ 5 красных и w2 ≤ 3 белых шаров (здесь мы уже совсем забыли про те три шара, которые точно не радиоактивны, и исследуем только три оставшихся). После каждого исхода этой проверки должно остаться не больше 8 (а значит, и не меньше 15 – 8 = 7) вариантов. Поскольку равенство r2 ∙ w2 = 7 невыполнимо, то осталось рассмотреть только r2 ∙ w2 = 8, откуда r2 = 4 и w2 = 2 (не наоборот, потому что w2 ≤ 3). Значит, на втором шаге должны быть проверены один красный и один белый шары, других вариантов быть просто не может. Итак,

Шаг 2. Проверим один красный шар R и один белый шар W.

Если исход этой проверки «–», то дальше всё просто: мы знаем, что один из r2 = 4 красных и один из w2 = 2 белых — радиоактивные. Их вполне можно определять по отдельности: на выявление белого шара достаточно одной (третьей) проверки, а на выявление красного — двух оставшихся.

А вот если исходом этой проверки оказался «+», то даже описать оставшиеся варианты не очень просто. Мы знаем, что хотя бы один из шаров R и W — радиоактивен. Но какой? Либо только R (а белым радиоактивным является один из w2 = 2 остальных), либо только W (а красным радиоактивным является один из r2 = 4 остальных), либо они оба вместе. Итого 2 + 4 + 1 = 7 вариантов. Как действовать дальше? Нужно снова пользоваться свойством 4): на третьем шаге нужно разбить 7 вариантов на 3 + 4. Для этого, например, можно делать шаг 3 таким:

Шаг 3. Проверим все r2 = 4 красных шара, кроме R.

После исхода «+» мы будем знать, что W радиоактивен, а R — нет. Оставшимися двумя проверками найдём красный радиоактивный шар. А после исхода «–» мы узнаем, что либо оба шара R и W радиоактивны, либо радиоактивен R и один из w2 = 2 белых шаров. Таким образом, R точно радиоактивен, а белый радиоактивный шар мы также легко найдём за две оставшихся проверки.

Значит, во всех случаях пяти проверок будет достаточно.


Послесловие

Несмотря на очевидную «игрушечность» постановки задачи, сама эта задача относится к сфере так называемой комбинаторной теории поиска, которая является вполне серьезной научной тематикой. В отличие от многих других математических задач, история которых уходит корнями в глубину веков, происхождение комбинаторной теории поиска (а если быть точным — методов группового тестирования) очень тесно связано с событиями Второй мировой войны, но при этом ни к какой атомно-радиоактивной проблематике отношения не имеет. Отцом метода можно считать единственного человека — Роберта Дорфмана. Вот как он сам описывает предысторию рождения метода группового тестирования:

Это было в 1942-м или в начале 1943-го. Дело было в Вашингтоне, в отделе статистики цен исследовательского департамента президентской администрации, где тогда работали Дэвид Розенблатт и я. Мы располагались во временном здании с длинными крыльями, заполненными столами безо всяких промежутков. Тяготы такой жизни компенсировались проходившими время от времени бурными дискуссиями. Групповое тестирование впервые было разработано в ходе одной из них. Будучи экономистами, мы все были поражены расточительством подвергания образцов крови миллионов призывников идентичным анализам в целях выявления нескольких тысяч зараженных сифилисом. Кто-то сказал, что было бы экономичнее смешать их кровь вместе, и эта идея была обсосана со всех сторон в ходе живого обмена мнениями, с шутками и прибаутками. Я не помню, как именно была тогда сформулирована задача. Но совершенно ясно, что я воспринял идею достаточно серьезно, так как в последующие несколько дней я сформулировал основную задачу как вероятностную и привлек для ее решения алгебру (впрочем, довольно элементарную). Вскоре после этого я написал доклад, представил его на заседании Вашингтонской статистической ассоциации, а четырехстраничная рукопись доклада была некоторое время спустя опубликована в журнале «Анналы математической статистики».

В статье Дорфмана было сказано буквально следующее:

Предлагаемый метод предназначен для использования службой здравоохранения Соединенных Штатов в целях недопущения призыва на воинскую службу всех мужчин, заболевших сифилисом. В рамках этой программы каждый будущий призывник сейчас подвергается тесту Вассермана. Это испытание может быть удобно разделено на две части: 1) взятие образца крови у человека, 2) лабораторный анализ крови, показывающий наличие или отсутствие «сифилитического антигена». Наличие такого антигена является признаком инфекции. Для этой процедуры необходимы n химических исследований для выявления всех инфицированных членов популяции размера n.

Ключевая особенность предлагаемой методики такова. Предположим, что после индивидуальных взятий крови образцы объединены в группы, например по 5, и именно эти группы, а не индивидуальные образцы, подвергаются химическому анализу. Если ни один из пяти исходных образцов не содержит сифилитический антиген, то и вся группа не будет содержать его, и это экономит четыре теста из пяти. Если же один или более из образцов содержат сифилитический антиген, то и группа будет также содержать его, и тогда групповое тестирование покажет его присутствие (диагностические средства для обнаружения сифилиса чрезвычайно чувствительны — дают положительные результаты даже при малом количестве антигена). Лица, чьи анализы вошли в такую группу, затем должны пройти повторное тестирование, чтобы определить, кто из них инфицирован. Для этого не надо брать у них нового образца крови. Химический анализ требует лишь небольшого количества крови, поэтому можно воспользоваться уже взятыми образцами…

Дальше в статье приводился рисунок, иллюстрирующий экономию, которая может быть достигнута благодаря использованию группового тестирования.

Экономия, которую удается достичь при использовании группового тестирования

Как часто случается с новыми математическими теориями, применить их на практике по каким-либо причинам не удается. Причиной неудачи применения группового тестирования (group testing, GT) для скрининга сифилиса было то, что объединение в группу даже 8–9 индивидуальных анализов существенно снижало точность теста, то есть повышало долю ложных срабатываний. Тем не менее статья Дорфмана не прошла совсем незамеченной, и идея GT вошла в качестве задачи в популярный учебник Феллера по теории вероятностей, а затем именно из этого учебника была воспринята всем математическим сообществом. Нужно отметить, что с окончанием Второй мировой и отказом США от всеобщей воинской повинности необходимость группового тестирования проб крови исчезла, и научный мир похоронил этот метод как один из эпизодов ушедшей войны. И только много лет спустя (почти случайно) в поисках методик для проверки исправности электрических и электронных приборов методы GT были заново открыты и получили мощнейший толчок к развитию. Одной из активно развившихся ветвей является комбинаторное групповое тестирование (CGT), другой — вероятностное групповое тестирование (PGT).

Почему в качестве фабулы задачи нами были выбраны какие-то радиоактивные шары и детектор радиоактивности, а не что-то иное? Видимо, потому что именно в таких терминах была сформулирована самая первая CGT-задача, которая встретилась автору. Это была задача Московской математической олимпиады 1966 года (правда, автор познакомился с ней не тогда, а спустя много лет, после выхода сборника задач Московских олимпиад).

Общий случай для той задачи, которую мы решили, относится именно к CGT. Пусть заранее известно, что одним из искомых (зараженных, радиоактивных и т.д.) объектов является ровно один из объектов множества A, а другим — ровно один из объектов множества B. Если множество A состоит из N объектов, а множество B — из M и эти два множества не пересекаются, то в такой задаче имеется NM вариантов. Как мы выяснили, это означает, что для решения задачи необходимо использовать ]log2 NM[ шагов (тестов, проверок). Но всегда ли такого количества окажется достаточно?

Ответ на этот вопрос для двух заражённых объектов был получен в 1981 году в статье A Group Testing Problem on Two Disjoint Sets. Её авторы Дж. Чанг и Ф. Хванг доказали, что этого количества тестов всегда достаточно. Однако обобщение того же вопроса на большее число заражённых объектов остаётся и по сей день нерешенной (открытой) проблемой. То же самое можно сказать и про те задачи CGT, в которых заражённые объекты исходно не разделены, то есть могут принадлежать к пересекающимся (или даже совпадающим) множествам.

Сейчас CGT изучается в таких университетских курсах, как сложность вычислений, теория графов, комбинаторика и теория информации (пример см. в ссылках ниже), причем зачастую специалисты по CGT формулируют свои задачи «на разных языках» и из-за этого не следят за результатами друг друга. Возможно, такая ситуация выправится после того, как Дональд Кнут закончит 4-й том «Комбинаторный поиск» своего фундаментального «Искусства программирования». Однако те главы четвёртого тома, в которых Кнут планирует рассказать про современное состояние методов группового тестирования, пока еще не написаны, поэтому очень хочется пожелать 75-летнему автору долголетия и крепкого здоровья.

См. также:
1) R. Dorfman. The Detection of Defective Members of Large Populations // Ann. Math. Statist. 1943. V. 14. No. 4. P. 436–440.
2) Г. А. Кабатянский. Курс Теория информации и комбинаторная теория поиска, факультет бизнес-информатики НИУ ВШЭ.
3) Задача о радиоактивных шарах, XXIX Московская математическая олимпиада (1966 г.).
4) Д. Э. Кнут. Искусство программирования. Том 4А. Комбинаторные алгоритмы.
5) G. J. Chang and F. K. Hwang. A Group Testing Problem on Two Disjoint Sets // SIAM J. Alg. Disc. Meth.. March 1981. V. 2. No. 1. P. 35–38.


26
Показать комментарии (26)
Свернуть комментарии (26)

  • Alexey Lubkin  | 15.11.2013 | 01:31 Ответить
    Послесловие напомнило такую хорошую задачу.
    Из 1000 бочек вина одна бочка отравлена.
    Яд убивает человека в течение часа (возможно за 1 секунду, а возможно и за 59 минут).
    Есть 10 приговорённых к смертной казни человек, которые вместо повешения, помогут найти отравленную бочку, поплатившись жизнью.
    Можно ли за 2 часа гарантированно найти отравленную бочку?
    Какое максимальное количество бочек можно гарантированно проверить за 2 часа?
    Ответить
    • Malcolm > Alexey Lubkin | 15.11.2013 | 09:06 Ответить
      А в чем сложность? Откупорить за 2 часа 1000 бочек или сделать 100 глотков на рыло?
      Ответить
      • Alexey Lubkin > Malcolm | 15.11.2013 | 09:15 Ответить
        Сложность в том, чтобы указать на конкретную отравленную бочку из 1000 при доступном числе попыток не более 2.
        Ответить
      • Alexey Lubkin > Malcolm | 15.11.2013 | 13:47 Ответить
        Ну, или если сложности не достаёт, то пусть человек будет не 10, а 7, при прочих равных условиях.
        Ответить
    • Geen > Alexey Lubkin | 15.11.2013 | 19:08 Ответить
      так 10 человек вроде за час могут, разве нет?
      Ответить
      • Alexey Lubkin > Geen | 15.11.2013 | 19:10 Ответить
        Могут. А вторая половина задачи - максимально возможное гарантированное количество бочек 10-ю человеками за 2 часа?
        Ответить
        • Geen > Alexey Lubkin | 15.11.2013 | 20:01 Ответить
          59000 примерно
          и вообще, (k+1)^n
          Ответить
          • Alexey Lubkin > Geen | 15.11.2013 | 20:25 Ответить
            59000 походит на 59049 = 3^10
            Не думаю, что такое возможно. Какова же тогда последовательность действий?

            Вообще, рабочий вариант это примерно 24000
            = максимум по k от 0 до n от
            2^(n-k) *
            * сумма по i от 0 до k
            сочетаний по i из n (т.е. n!/i!/(n-i)!)
            = max(k=0,n, 2^(n-k)*sum(i=0,k, n!/i!/(n-i)!) )
            Где n - число человек, т.е. 10
            Ответить
            • Geen > Alexey Lubkin | 15.11.2013 | 22:02 Ответить
              вот как надо пить при трёх людях в первом тесте из двух:
              1 1 1
              0 1 1
              0 1 1
              1 0 1
              1 0 1
              1 1 0
              1 1 0
              0 0 1
              0 0 1
              0 0 1
              0 0 1
              0 1 0
              0 1 0
              0 1 0
              0 1 0
              1 0 0
              1 0 0
              1 0 0
              1 0 0
              0 0 0
              0 0 0
              0 0 0
              0 0 0
              0 0 0
              0 0 0
              0 0 0
              0 0 0
              Ответить
            • Geen > Alexey Lubkin | 15.11.2013 | 23:00 Ответить
              общая формула:
              T(n;k) = sum( i=0..n, C(n;i)*T(n-i;k-1) ) при очевидном T(n;1) = 2^n это и будет (k+1)^n (C(n;i) - кол-во сочетаний из n по i)
              Ответить
              • Alexey Lubkin > Geen | 15.11.2013 | 23:44 Ответить
                Да, действительно.
                Спасибо за такой толковый вариант, существенно лучше предыдущего.
                В своём варианте я не додумался делать разбиения переменного размера. Размер разбиения был постоянен (прямо как в 1943 году) и выбирался так, чтобы максимизировать число опробованных бочек.
                Для 10 это было k=4, т.е. разбиение было на равные кусочки размером 2^(10-4)=64, что давало 2^6*sum(i=0..4, C(10, i))=24704
                С переменным размером всё получается гораздо веселее :)
                sum(i=0..10, C(10,i)*2^(10-i))=(2+1)^10=59049
                Ответить
                • Geen > Alexey Lubkin | 16.11.2013 | 01:42 Ответить
                  нуу, в этой задаче ещё есть чего посчитать - "среднюю" смертность, например, или "оптимальную стратегию" при неограниченном числе проб (но так, что бы не было "изгоев" - т.е. все пьют в каждом тесте из равного числа бочек)

                  А можно ещё потребовать, что бы хоть один осуждённый остался в живых (должить результаты :))
                  Ответить
    • PavelS > Alexey Lubkin | 17.11.2013 | 05:26 Ответить
      -------
      Ответить
    • komod > Alexey Lubkin | 18.11.2013 | 21:43 Ответить
      Никаких гарантий.
      Если учесть, что с ненулевой вероятностью все 10 дегустаторов двинут кони после первого часа (первой рюмки), то оставшиеся 0 дегустаторов за оставшийся час уже ничего выпить (проверить) не смогут.
      Ответить
      • Alexey Lubkin > komod | 18.11.2013 | 22:40 Ответить
        Поэтому важно ответственно отнестись к первому тесту и формировать дегустаторские рюмки, грамотно смешивая вино из бочек таким образом, чтобы если уж все (!) двинут кони, то и бочка нужная найдётся однозначно (!), а если определённые(!) k человек останется в живых, то этот факт укажет на конкретные(!) 2^k бочек, которые потребуется проверить на втором тесте.

        Для n=3 эта мысль наглядно продемонстрирована выше в комментарии Geen в виде таблицы 3x27.
        Там 27 строк соответствует 27 бочкам и если после первого теста скопытятся дегустаторы номер 1 и 3, то яд в одной из бочек: 4 или 5 (оставшийся в живых номер 2 потом определит, в какой именно яд).
        Если все умерли, то в бочке номер 1.
        А если никто не умер, то в одной из бочек 20..27
        Ответить
    • pete > Alexey Lubkin | 28.11.2013 | 00:55 Ответить
      Я знаю подобную задачу про 1000 бутылок вина и 10 дегустаторов, только условие без времени - все пробуют одновременно, и яд сразу убивает.
      Смысл решения, для программистов особенно, весьма прост - нумеруем бутылки двоичными числами и делаем 10 смесей для каждого разряда числа. То есть первой смеси будут соответствовать все нечетные бутылки, второй смеси - вторая, третья и все остальные, у которых в номере вторая единичка, и так далее.
      Дегустаторы выпивают - и мы получаем последовательность из мертвых и живых дегустаторов, соответствующую номеру бутылки. Легко понять, что 10 дегустаторов могут проверить 1024 бутылки.

      С бочками и двумя часами, у нас есть всего две проверки - мы должны дождаться конца часа, чтобы получить гарантированный результат. Выходит, мы можем обойтись девятью смертниками, разделив бочки пополам - для первого и второго часа, поскольку два в девятой - 512.
      Как можно обойтись семью - не представляю, два в седьмой это всего 128 бочек.
      Ну и соответственно, имея 10 человек, за два часа мы можем проверить максимум 2048 бочек, по 1024 за час.
      Ответить
      • Alexey Lubkin > pete | 28.11.2013 | 01:13 Ответить
        > То есть первой смеси будут соответствовать все нечетные бутылки, второй смеси - вторая, третья и все остальные, у которых в номере вторая единичка, и так далее.

        Да, здесь всё верно, двоичная система на страже порядка :)

        > Как можно обойтись семью - не представляю, два в седьмой это всего 128 бочек.

        Зато три в седьмой это 2187, что больше тысячи :)
        Здесь, с двумя часами, действительно нетривиальный подход.
        Лучше всего понимается на примере 3 человек, 27 бочек, как показано в таблице в комментарии от 15.11.2013 22:02, автор Geen.
        Плюс мои пояснения к этой таблице в комментарии от 18.11.2013 22:40, автор Alexey Lubkin.
        Ответить
  • darkair  | 16.11.2013 | 08:40 Ответить
    1 шаг - проверяем 3 белых шара, остается 5к + 3б
    2 шаг - проверяем 3к шара, в худшем случае остается 3к + 3б (комбинаций явно больше 8 :)
    3 шаг - проверяем пару 1к + 1б, выясняем радиоактивна ли она
    4 шаг - проверяем другую пару 1к + 1б, после этой проверки мы точно будем знать какие две пары 1к + 1б радиоактивны
    5 шаг - проверяем 1к шар, если он радиоактивен, то белый из другой пары тоже, если он не радиоактивен, то радиоактивен белый из его пары и кравсный из другой.

    Итого имеем перед 3 шагом комбинаций больше чем 2 в третьей степени.
    Или я не прав или где-то нестыковка в теории решения задачи )
    Ответить
    • Alexey Lubkin > darkair | 16.11.2013 | 17:49 Ответить
      Если после второго шага останется 3к+3б, то возможных вариантов всего будет 3*3=9:
      к б
      100 100
      100 010
      100 001
      010 100
      010 010
      010 001
      001 100
      001 010
      001 001

      Но за 3 бинарных проверки можно максимально разрулить только 2^3=8 вариантов. И если все 9 обозначенных выше вариантов прогнать через шаги 3-5, то прокол очень быстро обнаружится.

      > 3 шаг - проверяем пару 1к + 1б, выясняем радиоактивна ли она
      Ккк Ббб
      > 4 шаг - проверяем другую пару 1к + 1б, после этой проверки мы точно будем знать какие две пары 1к + 1б радиоактивны
      кКк бБб

      После этих двух проверок возможны такие варианты:
      1) первая пара радиоактивна, а вторая - нет (тогда одной оставшейся проверкой не разрулить 3 возможных варианта: Ккк ббБ, Ккк Ббб, ккК Ббб)
      2) вторая пара радиоактивна, а первая - нет (тогда одной оставшейся проверкой не разрулить 3 возможных варианта: аналогично)
      3) первая и вторая пара радиоактивны (тогда пятый шаг разрешит 2 возможных варианта: Ккк бБб, кКк Ббб)
      4) никакая из пар не радиоактивна (тогда пятый шаг не потребуется для единственно возможного варианта: ккК ббБ).

      Итого: 3+3+2+1=9 вариантов, которые не разруливаются за 1 оставшийся шаг в 2 случаях из 4.
      Ответить
      • komod > Alexey Lubkin | 18.11.2013 | 21:36 Ответить
        Согласен.
        И хотя предложенный алгоритм не позволяет уменьшить максимальное число необходимых проверок, он позволяет уменьшить среднее вероятное число проверок необходимое для сортировки.
        Если у нас 3к+3б, то если их не смешивать в среднем будет 30/9 проверок - вдвое больше чем для трех шаров - 2*5/3
        А если смешивать шары разного цвета, то в среднем получится 29/9 проверок. Среднее вероятное число проверок уменьшается!
        Смысл в задаче есть, но он неверно истолкован :)
        Ответить
  • Okabe  | 17.11.2013 | 19:59 Ответить
    Сумма оставшихся вариантов после "+" и "-" исходов должна быть равна исходному числу вариантов. Значит где сложно оценить число для "+" можно от исходного отнять "-".
    Ответить
  • SysAdam  | 18.11.2013 | 09:31 Ответить
    Хмм. Какие странные задачи. Априори известно, что только два шара радиоактивно. Или одна бочка отравлена. Но откуда это известно? Может, и радиоактивных шаров 5, и бочек отравленных 10.
    Вот когда неизвестно число искомого, вот тогда это настоящая задача.
    Ответить
    • pete > SysAdam | 28.11.2013 | 00:58 Ответить
      Настоящая задача - это когда вообще неизвестно, чего искать.
      Ответить
    • kknop > SysAdam | 20.12.2013 | 11:54 Ответить
      ;-)
      Я почти согласен. Но математики решают не только настоящие задачи.
      Ответить
  • OlegCh  | 20.12.2013 | 15:18 Ответить
    Целый месяц ломал голову. Наконец, сдался, посмотрел решение. Да уж, впечатлён... Сам бы, конечно, не допёр. Особенно понравилась история появления задачи. Спасибо!
    Ответить
  • DiSha  | 17.09.2016 | 15:11 Ответить
    Решил так:
    1. Делим шары КК ККК БББ БББ
    2. 2 проверки ККК и БББ, остаются в худшем случае ККК и БББ
    3. делим шары КК КБ ББ
    4. 2 проверки КК и ББ, или сразу определяется пара КБ, или в худшем случае остаются КК и ББ
    5. Делим шары КБ и КБ
    6. Одна проверка -> искомая пара найдена!
    Ответить
Написать комментарий
Элементы

© 2005–2025 «Элементы»