Электроника Б3-34

Микрокалькулятор - Загадка

Часть 3

English version

Начало на первой странице

Для охоты на 5-м этаже нашего "числового моря", в таинственном мире ОС-оборотней (числа с порядками между 400 и 500), полезно обзавестись подходящим "водолазным снаряжением". Введите в калькулятор такую, например, программу: 00. (кстати, команды и ничуть не хуже выполняют функции "пустой" команды, хотя в инструкции о них и не говорится)
01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12.

Она умножает набранное вами число на 10e400, формируя "чудовище", заключает его в "клетку" - регистр А (можно использовать и любой другой) - и уничтожает все его следы в стеке. Легко видеть, что, подавая на вход различные числа с положительными порядками, мы перекрываем весь диапазон ОС-оборотней. Начнем охоту с самого "меньшего" - 10e400. Команда: . На индикаторе ноль, но оборотень в клетке! Не торопитесь выпускать его на свободу - просмотрите содержимое остальных регистров. Все спокойно, нигде ничего нет. Теперь . На индикаторе по-прежнему ноль. Охота, судя по всему, не удалась...
Но не спешите с выводами - загляните в регистр С. . На индикаторе - предиковиннейшее создание, "хвост оборотня" (). Избавляемся от порядка: . Перед нами , причем двойка занимает "законное" место знака "минус". Если нажать клавишу , она сменится девяткой. Проделаем операцию . На индикаторе, естественно, ноль. А что, если опять заглянуть в регистр А? . В регистре С вновь появился "хвост оборотня"!

Мы познакомились с главным свойством ОС-оборотней: при всяком их вызове в регистр Х на индикаторе появляется ноль, зато в регистр C записывается "хвост", вид которого зависит от величины оборотня. Если в качестве "клетки" использовать сам регистр С (заменить в нашей "водолазной" программе команду на ), то при первом на индикаторе появится ноль, при втором - "хвост оборотня", а сам он безвозвратно исчезнет.

Второе важное свойство ОС-оборотней - их этаж в искаженном виде копирует структуру всего "числового океана". При вводе в нашу программу чисел от 1 до 9,9999999e9 включительно в регистре C появляются "числа-мутанты", начинающиеся какой-либо цифрой на месте минуса (она на единичку больше старшей цифры введенной мантиссы; если мантисса начинается с девятки, здесь стоит просто минус) и заканчивающиеся буквой E, затем - мутантные формы ЕГГОГов (при входных числах вплоть до 9,9999999e19, ЗГТОГов (при входных числах до 9,9999999e29; можете сами их исследовать на предмет отличия от обычных ЗГТОГов; процедура их "расшифровки" приводит к показательным шифрам с довольно интересными основаниями), затем знакомых уже нам диких чудовищ 4-го этажа... Но самое любопытное начинается при вводе чисел от 1e40 до 9,9999999e49 - при вызове оборотня из "клетки" в регистр C записываются опять-таки оборотни (назовем их оборотнями второго порядка)! На них-то и основаны "фокусы со шляпой".

Образуем, например, число, равное 10e440.
. На индикаторе ноль, но оборотень - в регистре A. . На индикаторе снова ноль, но теперь в регистр C записался оборотень второго порядка.   - на индикаторе по-прежнему ноль, зато в регистр C, по идее, записался "след".   - действительно на индикаторе
. Если снова скомандовать , в регистр C опять запишется оборотень второго порядка, и команда - при первом нажатии - выдаст на индикатор ноль...
Но главный сюрприз впереди. Оказывается, уровень оборотней второго порядка также копирует структуру всего "числового океана". При вводе в нашу программу чисел от 1e40 до 9,9999999e40 команды приводят к "числам-мутантам", завершающимся EE, затем наступает очередь мутантных форм ЕГГОГов, ЗГГОГов ("расшифровка" последних, кстати, приводит к показательным шифрам с EE в левой части), затем чудовищ 4-го этажа, а потом... мы вновь сталкиваемся с ОС-оборотнями, на этот раз уже третьего порядка!
Их "экологическая ниша" - это узкая щель между 10e444 и 10e445 (на вход нашей программы, стало быть, для их формирования нужно подавать числа от 1 44 до 9.9999999 44). "След" оборотня третьего порядка представляет собой "число-мутант", завер-шающееся комбинацией EEE (к счастью, дальнейшего копирования структуры нашего "океана" не происходит, иначе нам пришлось бы  заниматься ОС-оборотнями до бесконечности) и появляющееся на индикаторе лишь после третьей команды  .

Пример: (0) (0) (0) (0) (на идикаторе .

6-й этаж.

Самым; пожалуй, неприятным обитателем глубин нашего "числового океана" является Тьма - при любом контакте с ней индикатор гаснет. Основные владения Тьмы располагаются между порядками 500 и 600 (таким образом, всякое число от 1e500 до 9,9999999e599 - это Тьма). Для первого знакомства с ней можно в режиме набрать на клавиатуре такую, например, последовательность команд: () () . Индикатор гаснет - наши действия привели к числу 10e500, а это, конечно же? Тьма. Легко убедиться, что калькулятор не отзывается теперь ни на один приказ с пульта. Однако если его выключить на несколько секунд, а затем включить снова, он будет работать как ни в чем не бывало.

Чтобы упрятать Тьму в "клетку" (адресуемый регистр), можно воспользоваться простой программой:
00. 01. 02.   03.   04. 05.

Команда: . После останова на индикаторе горит ноль, но в регистре A сидит Тьма! Если вы рискнете и выпустите ее оттуда ( ), то индикатор погаснет, придется отключить калькулятор и вводить программу снова.

Как вы помните, для количественного анализа чудовищ 4-го этажа использовался из регистра 9.  Однако для расшифровки как ОС-оборотней, так и Тьмы такой анализатор непригоден. Чтобы дешифровать Тьму (да и любые другие "суперчисла"), полезен логарифмический анализатор:

00. 01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. 12. 13. 14. 15. 16. 17. 18.

Программа логарифмирует сформированное командами (00-02) "чудовище" и вычисляет его мантиссу и порядок, так что после останова в регистре Х оказывается мантисса (с небольшой ошибкой в последних десятичных знаках), в регистре У - порядок. Обратите внимание на фрагмент (04-09) - вычисленный логарифм числа вычитается из тысячи; легко убедиться, что такая коррекция необходима при логарифмировании всех "сверхчисел", вплоть до Нуля (то есть по 9,9999999e799 включительно). Фрагмент (10- 13) использует для выделения целой части числа команду косвенного вызова.

Испробуем наш анализатор на Тьме: . После возведения в восьмую степень должно, очевидно. получиться число 10e560. На индикаторе зажигается приближенное значение мантиссы (1,0002303), в регистре Y ока зывается совершенно правильная величина порядка (560).

Можно ли вызвать Тьму в регистр X? Казалось бы, странный вопрос... Но вве дите в калькулятор программу:

00. 01. 02. 03.

Перейдите в режим и скомандуйте: . На индикаторе загорается сообщение error.gif (126 bytes) (результат "неправильной" команды), но под ним скрывается Тьма - если отдать сейчас одну из команд , или , индикатор погаснет. Тьма, "замаскированная" сообщением error.gif (126 bytes), находится в регистре X, и с нею можно обращаться как с любым "нормальным" числом - умножить на что-нибудь, разделить, прологарифмировать вручную, используя приведенную выше процедуру... А что, если попробовать вычислить число, обратное Тьме? Команда: . На индикаторе ноль. Казалось бы, ничего удивительного это же еще могло получиться в результате такой операции? Однако не будем спешить с выводами, заглянем в регистр C. . На индикаторе - знакомый "хвост" оборотня, равного 10e440. Итак, разделив единицу на 10e560, мы получили 10e440; впрочем, если вспомнить, что наш "числовой океан" характеризуется периодом в 1000 по величине порядков, в этом опять-таки нет ничего удивительного: единица в "арифметике" калькулятора тождественно равна 10e1000 (вспомните коррекцию логарифма, о которой только что шла речь). Отсюда следует важный вывод: числа, обратные Тьме, это ОС-оборотни; следовательно, числа, обратные ОС-оборотням,- это Тьма; значит, во избежание неприятностей не стоит производить над ОС-оборотнями такой операции... Кроме того, возникает подозрение, что в наш "числовой океан" можно проникнуть и с "черного хода" - через числа с отрицательными порядками; забегая вперед, укажем, что это действительно так.

Кроме своего "законного" этажа, Тьма занимает и две "ниши" в мире ОС-оборотней: от 1e450 до 9,9999999e469 (оборотни первого порядка) и от 1e445 до 9,9999999e446 (оборотни второго порядка); легко видеть, что в этих мирах Тьма "оккупирует" еще и соседний этаж, где, по идее, должны были бы
располагаться C-error.gif (126 bytes) - оборотни (числа с порядками между 600 и 700), с которыми мы познакомимся дальше. Отдайте, например, такую команду (в калькулятор введена последняя из приведенных программ, завершающаяся ):
. На индикаторе - сообщение , под ним скрывается ОС-оборотень, равный 10e464. Нажимаем , на индикаторе ноль. - индикатор гаснет, Тьма...

 

Продолжение на следующей странице.

То ли еще будет...

Последние изменения: 25.03.00

. 1