среда, 3 октября 2012 г.

Фокус с картами на Wolfram Mathematica

Случилось мне 2 октября побывать на семинаре по Wolfram Mathematica, проводимом в рамках Российского турне "Технологии Wolfram".
И благодаря удачно занятому месту и генератору псевдослучайных чисел ядра Mathematica, я стал обладателем колоды игральных карт с символикой Wolfram Research. А что происходит, если инженеру дать колоду карт, пакет Wolfram Mathematica 8 и несколько часов свободного времени, можно узнать под катом.

 

Колода карт

 Собственно колода карт, без которой ничего бы не было:
Выигранная колода карт Wolfram Research
Дизайн карты представляет собой картинку "а-ля фрактал", основой которой является номинал карты, а количество повторений равно номиналу. Причем для каждой масти рисунок свой.
Дизайн карты на примере четверок
 На цифровых картах также указаны выражения как попроще, так и сложные, значением  которых является номинал карты. В одном углу выражение написано на человеческом математическом языке, в другом - на языке Wolfram Mathematica. Для каждой карты формула своя и не повторяется. В целом колода достаточно интересная, при условии, что вы нормально относитесь к цифрам и к математике (обычной, а не пакету от Wolfram) по жизни.







 

Фокус с картами "Три кучи"

Сидел я, тасовал бесцельно колоду и думал, что бы с ней сделать. И вспомнился мне из детства фокус с картами, когда колода раскладывается картами вверх на три кучи. Тот, кому фокус показывают, говорит в какую кучу попала загаданная им карта. Данная куча кладется в колоду в центр, и после еще двух таких итераций загаданная карта оказывается 18-й в колоде из 36 карт или 27-й в колоде из 54-х. "А почему так получается?", - думалось мне в детстве. Ведь тогда я ничего не знал про множества, их пересечение и прочие заумные штуки. "И почему всегда восемнадцатая?" Или не всегда. Случалось, что фокус не получался, и я все списывал на свои корявые руки. Так в них ли дело? Давайте разберемся. А то, что не видно в колоде, замечательно видно в рабочем окне Wolfram Mathematica.

 

  Открываем секреты

Ничего сверхъестественного в реализации фокуса на Mathematica нет. 

1. Берем последовательность от 1 до 36 (или 54). Последовательность даже тасовать не надо, не теряя общности, поскольку пронумеровать карты можно как в тасованной, так и не в тасованной  колоде. На общность рассуждений это не повлияет никак.
2. Выбираем карту. Можно случайно, можно ручками задать
3. Разбрасываем карты последовательно на три кучи
4. Смотрим в какую попала наша карта.
5. Соединяем три кучи так, чтобы так куча, где лежит меченая карта, оказалась в центре.
6. Повторяем пп 3-5. еще два раза.
6а. Можно посмотреть пересечение куч, куда попадала карта, чтобы видеть как отсеиваются ненужные карты.
После третьей итерации смотрим сколько карт осталось в пересечении, т.е. попадали во все три "нужных" кучи, и позицию меченой карты в колоде.

Для того, чтобы увидеть представленную ниже мини-программу, необходимо скачать и установить свободно распространяемый Wolfram CDF Player (106Мб для Windows). Прямая ссылка с Google Drive.


Управляться с этой мини-программой просто: сверху выбираем колоду в 36 или 54 карты, затем выбираем карту, которую надо угадать. Эта карта не привязывается конкретно к масти и номиналу, а обозначает условный номер загаданной карты. Если не знаете, что поставить - жмите ниже кнопку случайная карта. Ниже выбираем количество итераций, которое надо повторить: три, четыре или пять. Кнопка "Тасовать колоду" перемешивает карты в колоде, "Reset" выставляет корты по порядку. Собственно эти кнопки особого места не имеют, потому как загаданная карта может без изменения общности обозначать как конкретную карту, так порядковый номер загаданной карты в тасованной колоде. Поигравшись с кнопками, переходим к выводам.

Никакой магии нет :(

Если посмотреть внимательно на возможные результаты при положении искомой карты на каждой возможной ее стартовой позиции в колоде, то получаются следующие результаты:
  • если искомая карта в исходной колоде занимала позицию с 1-й по 18-ю, то карта получается всегда 18-я, если с 19-й по 36-ю - 19-я. Вот почему фокус иногда не сходится;
  • если карта занимает позицию с 1-й по 9-ю, то у нее есть пара расположенная на позиции карты плюс 28. Т.е. у 1-й - 28-я, у 9-й - 36-я и.т.д. В итоговой колоде после трех итераций пара расположена всегда рядом на 18 или 19-й позиции.
  • если провести 4-ю итерацию, пара исчезнет, но это не уточнит положение искомой карты. Она по-прежнему будет или 18-й, или 19-й. 5-я итерация ничего не меняет.
Таким образом. оптимально будет дать человеку выбрать карту наугад в колоде и положить ее внутрь колоды, заметив в первую или вторую половину она попадет.
В колоде из 54-х карт многие свойства совпадают. В частности, у карты также есть пара "+28", а поскольку 27 (внезапно) является половиной от 54, то карт, не имеющих пары тут нет. Искомая карта располагается на позиции 27 или 28 в зависимости от стартового положения. Четвертая итерация также убирает пару, но не уточняет положение искомой пары. Пятая итерация смысла не имеет.
В итоге также даем выбрать карту, запоминаем положение и "угадываем". А если вдруг попросят колоду помешать, ну чтож. Если с первого раза не угадаете, можно вздохнуть, взять следующую карту и небрежно бросив сказать: "Ну... тогда эта!". Никакой магии...

Комментариев нет:

Отправить комментарий