суббота, 15 марта 2014 г.

Про числа и игры

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

Вот, недавно стал читать книгу Конвея "О числах и играх". Много лет назад прочитал вот здесь про комбинаторную теорию в Го. В частности, прочитал про инфинитезимали, и это было круто. Сейчас решил перечитать, и нашел ссылку на Конвея. Вот цитата из первого параграфа:
 "Дедекинд (а до него автор — как считается, Евдокс — пятой книги Евклида) строил вещественные числа из рациональных. Его метод заключался в том, чтобы разделить рациональные числа на два множества L и R так, чтобы ни одно число из L не было больше никакого числа из R, и использовать это "сечение" для определения нового числа {L | R} в случае, если ни L и R не имеют экстремальной точки." 
Фактически, вот это самое дедекиндовское определение и берется далее за основу:
"Если L, R —  два множества чисел, и ни один элемент из L не  ⩾ любого элемента из R, то есть число {L | R}. Все числа строятся таким образом."
Отличие от дедекиндовского определения в том, что никаких чисел adhoc вводить не требуется. Конечно, еще нужно определить отношение ⩾ для таких чисел и операцию сложения (интересующимся смотреть книжку). Последняя позволяет отождествить определяемые числа с нормальными. Например, ноль выглядит как {∅ |∅}={|}. Вообще, одно и то же число можно представить разными способами, но это не страшно, с обыкновенными дробями тоже так.
Но, конечно, самое интересное начинается, если рассматривать пары {L|R}, в которых нет условий на элементы. Получаем определение комбинаторных игр на двоих:
"Если L, R —  два множества игр, то есть игра {L | R}. Все игры строятся таким образом."
Игры тоже можно складывать и вычитать. Числа в этом подходе — частный случай игр. А есть игры, числами не являющиеся, в частности, упомянутые инфинитезималы. Но про это как-нибудь в другой раз.

 Ну, и скрипт, конечно. Кстати, обнаружил, что поддерживается ползунок —   <input type="range" min="0" max="10"... />.

Двоичное числорезультат
-1.1