Компьютеры Фибоначчи. Точки над i.
Мы получили интересный отклик А. В. Никитина из города Волгодонск на статьи Алексея Стахова
"Компьютеры Фибоначчи ", опубликованные
в двух предыдущих номерах, и решили напечатать его с незначительными сокращениями.
Tема, поднятая в
статье А
П Стахова, мне кажется, требует некоторых
пояснений. В математике на сегодняшний день
существуют две общепринятые константы Это число пи = 3,14 и число е = 2,71.
На этих константах строится
все здание математики. Существует еще одна константа,
это число Ф= 1,618. ..
И хотя открыта она более двух тысяч лет
назад, в классической
математике места ей так и не
нашлось. Долгое время число Ф служило
мерилом гармоничного восприятия и эталоном
размерности
для скульпторов, художников, архитекторов. Оно имеет множество названий — золотое
сечение, божественная
пропорция и т. д. Великие умы
искали разгадку его возникновения
и не находили.
Сегодня ученые,
работающие в любых
направлениях науки, снова и снова
натыкаются на эту константу. Следует серия сенсационных публикаций.
Мир в восторге. Поднимается газетная шумиха, на волне которой начинается бурный рост разного рода "научных" теорий и новых "философских" трудов на тему числа
Ф. С его помощью считают все, от развития
Вселенной до количества чертей на дне
бутылки. Вал мутных публикаций
захлестывает мир, хороня под этим
мусором и действительно ценные
научные находки и открытия.
Интерес к числу Ф меняет знак на противоположный.
Уже любое упоминание о
нем вызывает активное неприятие
всего, что с ним связано.
К сожалению, примерно
по такому
сценарию события развивались уже
не раз. И каждый раз это приводит к одному и тому же результату. Наука надолго
отворачивается от числа Ф до следующей
сенсации. За последние полвека было, как минимум, два всплеска интереса к этой константе.
Пока еще высок интерес к
числу Ф в Северной Америке и Англии. Выпускаются журналы и публикуются статьи на тему Фибоначчи. Несколько сайтов в Интернете рассказывают о последних достижениях в этой области. Но, кажется, и там интерес уже минимальный.
В СССР информационный
бум, связанный с
числом Ф, пришелся на 70—90 годы двадцатого века. Однако ввиду развития событий в мире у нас делалось все для
его снижения и полного замалчивания. Интерес к этой теме тщательно подавлялся.
В массовую печать
попадали лишь разрозненные
статьи, а официальная наука
хранила полное молчание. В этих условиях открытия А П
Стахова
в области применения этой константы в
вычислительной технике представляются еще более значимыми. Сейчас можно оценить сделанное. Можно покритиковать. Не всей не так сделано. Сейчас
можно. А тогда? В то время, когда все — против? И не было ни средств, ни времени Пик работ
пришелся на период
перестройки. Все понимали, главное — успеть. Другого шанса не будет.
Но не успели, великая страна развалилась, работы по компьютеру Фибоначчи были свернуты. А
проблемы остались.
Мне кажется, пришло
время попытаться
понять суть этих проблем.
При нынешнем развитии
компьютерной
техники и программирования,
всеобщей эйфории от их применения во всех отраслях нашей жизни очень сложно говорить
о недостатках этого
шедевра человеческой мысли, заложенных
в него изначально господствовавшей
тогда философией.
Общий подход к
реализации машинных
вычислений — применяемая система
счета. Точность, достоверность, повторяемость — вот критерии оценки результата
вычислений с применением
компьютера. Эти критерии всегда
определяли и определяют философию и архитектуру компьютера. Сейчас на первый план вышли надежность и достоверность хранения информации, сохранение правильности
введенной информации в условиях помех и многократной перезаписи, методы обнаружения и исправления ошибок. Перечень можно продолжать. Это
общие технические проблемы любого сложного вычислительного
комплекса.
Вот с систем счета и начнем Мы
привыкли к процессу счета—1, 2, 3, … — и нам кажется,
что нет ничего проще и естественней.
Считать можно все.
Можно поштучно,
можно кучками, десятками, дюжинами, чем
удобнее и проще. А чем и как проще? На этом и возникли различные системы счета. Их много. Все они различаются
основанием системы и способами
записи числа, но сходны в одном
— они считают единицы. Одна вещь, две и т д. И
число, отражающее результат счета,
сегодня имеет четкую позиционную
структуру. Каждая цифра занимает свое место в числе и отражает состояние
какого-либо его разряда. Каждый
разряд — это количество каких-то
разрядных единиц. Количество единиц, составляющих полный разряд — и
есть основание счетной системы. Порядок арифметических действий всем понятен со школьной скамьи.
Неужели можно считать как-то иначе?
Наверное,
первым, кто задал себе этот вопрос, был американец Бергман. Ему пришла в голову идея сделать основанием
счета не целое, а иррациональное число Ф. Это единственное иррациональное число (то есть
заведомо неточное), на котором можно создать полномасштабную
систему счисления, по построению совпадающую со всеми существующими. Каждый новый разряд в
числе — это новая степень основания счета.
Система счета Бергмана была опубликована в 1957
году. На публикацию особого внимания
не обратили. В это время победным маршем развивались двоичные системы счисления.
Этого требовал Компьютер. О системе Бергмана забыли
надолго и вспоминали лишь как о курьезе. Ее
заново открыл Стахов. В его изложении она и известна сегодня
читателям, хотя неподготовленному читателю не совсем понятна.
Если использовать цифры 0 и 1, то первые числа натурального ряда в этой системе счета выглядят так:
1= 1
2=10,01=1+1
3=100,01=10,01+1=11,01
4=101,01=100,01+1
5=1000,1001=101,01+1=110,1001
6=1010,0001=
1000,1001+1=1001,1001
7=10000,0001=1010,0001+1=1011,0001
8=10001,0001=10000,0001+1
и т.д.
Такое положение возникает в результате того, что десяток не содержит целого
числа единиц, так как он меньше 2, и сложение 1 +
1 >Ф, что дает следующий разряд с
переполнением. А так как мы
складываем целые единицы, у нас
одинаково быстро нарастает и
целая часть числа, и дробная. Основное
правило счета 011 = 100, то есть
старший разряд — это сумма двух
предыдущих.
Зачем
же нужна такая странная система
счета? Всем понятно, что считать в ней неудобно и непривычно. Это понимал и Стахов. Он ушел от
иррациональности основания счета,
разработав новые системы. В них
целые числа уже представлены как
целые, без длинного "хвоста" дробной части. Сохранены и
принципы счета Бергмана. Теперь можно и считать, и создать на этой основе принципиально новый компьютер. Что из этого получилось, мы, к сожалению, уже знаем. Но вопрос остался.
Зачем и почему нужен именно такой счет? Неужели нельзя обойтись
тем, что уже есть и прекрасно работает? Зачем вообще нужен компьютер Фибоначчи?
Основой
компьютерной памяти является двоичное
число определенного размера. Биты и байты — это уже вполне привычные термины, определяющие размерность компьютерных чисел. Однако посмотрим на двоичное число (например, 10110010) и зададим себе несколько вопросов. А если в каком-то разряде вместо 1 появится 0, можно ли это сразу обнаружить? И выяснится, что нет.
Появившаяся ошибка никак себя не проявит вследствие полной независимости разрядов числа
(123=100+20+3). Для поиска таких ошибок нужны специальные методы. А
в системе Ф-счета Бергмана? В ней число — это сумма зависимых разрядов. И появившаяся лишняя единица во многих случаях сразу приводит к
необходимости преобразования
числа. Это позволяет фиксировать ошибку сразу при появлении. И
исправлять. Высокую помехоустойчивость Ф-счета сегодня признают все разработчики компьютерной техники. Но
вместе с явными плюсами систем
счисления на базе числа Ф сразу
стали обнаруживаться и минусы.
Числа получаются длинные, вычисления сложные. И самое
главное — для компьютера
Фибоначчи все надо создавать
вновь, с "чистого листа". И архитектуру, и процессоры, и программы.
Конечно, возможен разумный
компромисс. Но, без переосмысления философии числа и счета, без переоценки направлений развития компьютера все равно не обойтись. А
это очень сложное решение. Сегодня сфера применения компьютеров
далеко вышла за рамки чистых
вычислений. Число перестало быть показателем результата счета, став самостоятельной величиной и носителем информации. При таком подходе многие
очевидные изменения числа перестают
быть очевидными. Давайте проведем несколько опытов в доказательство такого, с первого взгляда, абсурдного заявления.
Любое число можно
представить суммой единиц N=1 + 1 + 1
+ 1+…
Понятно и привычно. Сколько палочек в коробке?
Начнем вынимать по одной и считать. На последней палочке счет кончается.
Это и будет числом палочек в коробке, или
результатом счета. Теперь посмотрим на процесс счета, для чего немного изменим условия.
Нас интересует уже не результат, мы будем наблюдать
за изменением числа в зависимости от поступления счетных единиц. Вот заполнился один разряд
счета, и единица перепрыгнула в
следующий разряд. Вот снова прыгнула. Вот заполнился и другой...
Теперь сразу две единицы в разных
разрядах перепрыгнули в соседние. А
единицы все поступают и счет
продолжается. Число
все растет, заполняются все новые разряды — то короткими перебежками, из одного разряда в соседний, то сразу
по всем разрядам из одного края
цепи в другой. Вот число уже не умещается на странице. Все, его уже и не определить, остается следить за куском числа или за числовой цепью. Вот числовую цепь мы можем определить. Указать количество
разрядов в контролируемой цепи,
определить разряд, в который поступают единицы, степень влияния на эту цепь разрядов счета, не попавших в контролируемый участок и т. д.
Если отвлечься от "веса" разрядных единиц, в целом подобный процесс счета
можно назвать движением единиц по разрядам. Мы наблюдали динамику счетного процесса. Интересовал
нас результат счета? Если честно, то не
очень. Нас даже не интересовало
текущее состояние разрядов
счета. Ну, заполняются, и ладно. А процесс счета? Да, интересно. Особенно момент обнуления разряда
и прыжок единицы. Кто из нас не ждал
момента: 999, вот сейчас, есть:
1000! При таком подходе к счету
возникают вопросы уже иного рода
— скорость роста числа, динамика
и частота движения единиц. От чего
все это зависит? Эти и другие параметры числа определяются примененной системой счета. Чем больше
основание счета — "десяток",
— тем реже перескакивают единицы
по разрядам и тем медленнее
рост числа.
Теперь такой же опыт проведем с числом Ф-счета. Мы увидим, что единицы
бегут по разрядам счета уже не в одну
сторону, а в разные, то есть мы наблюдаем движение сразу в двух
направлениях: одни единицы уходят в
сторону увеличения числа, а второй, более быстрый поток — в сторону нуля. Дробная часть числа то появляется, то исчезает и становится все длиннее, уходя все дальше к туманному нулю. Движение единиц в
сторону нуля — это результат иррациональности основания счета. Десяток
— число с бесконечной дробью. Каждая вторая счетная единица в
свой счетный разряд уже не умещается и образует дробную часть. В процессе
суммирования эти остатки и образуют второй поток единиц
— в сторону нуля.
Сделаем
выводы из проделанных опытов:
•
Динамика счетного процесса — это
тоже результат счета. Иногда сам процесс счета важнее результата.
•
Ф-счет
имеет совершенно другие возможности, нежели
существующие системы счета. Не лучше и
не хуже, просто другие.
•
Динамика счета и движение единиц
по разрядам числа — это тоже информация, и этим потоком можно и
нужно управлять.
•
Число или числовая цепь может работать как канал
передачи информации. Все зависит от подхода и исполнения.
При таком
подходе к процессу счета и числу можно рассматривать число
как величину, имеющую направление роста и вектор развития. Если
первое понятно, то второе надо объяснить. Это вещи не тождественные.
Вспомним опыт. В первом случае число развивалось только в сторону увеличения
разрядности, и можно сказать, что вектор развития числа и
направление роста совпадают. В случае Ф-счета число развивается
сразу в двух направлениях: и в сторону увеличения, и в сторону нуля.
Значит, число в системе Ф-счета имеет два вектора развития, один из
которых не совпадает с направлением его увеличения, а направлен в сторону роста
разрядности дробной части. Причем вектор развития числа в
системе Ф-счета имеет две точки привязки. Вспомним, в Ф-счете новый
разряд образуется из суммы двух предыдущих, тогда как в рациональных системах
счета — простым переполнением предыдущего разряда.
Такая ориентация счета на числовой оси позволяет совместить число с
координатами пространства и простым суммированием получать многомерные
числа. Возможности Ф-счета и
моделирования это позволяют.
В наши дни компьютер Фибоначчи
— направление, возникшее в процессе
осознания недостатков, присущих
существующей компьютерной
технике, — это и полигон для творчества
в подходе к процессам счета, и числовой канал передачи информации, и связанные числа, а на их базе — объемный процессор, числовые объемные структуры хранения
и переработки информации, например, по
ассоциативным признакам сразу в
нескольких независимых направлениях, и еще много такого, что и не снилась современному компьютеру, наконец, это один из вариантов приближения к искусственному интеллекту. Предпосылки к этому есть. Не стоит только переоценивать возможности Ф-счета. Разумный компромисс старого и нового необходим всегда.
Системы Ф-счета более применимы к построению и моделированию
деятельности аналогов живых объектов,
например, нервных клеток и
систем. В числовых цепях они хорошо
моделируют процессы возбуждения
и торможения, самовосстановления
канала связи, прохождения
потоков информации по разрядам
счета, генерации кольцевых потоков
счета и т. п. Все эти процессы могут быть реализованы на существующих
схемах цифровой электронной техники.
В
"железе" процессы счета можно демонстрировать на счетных триггерных линейках, реализующих систему Ф-счета Бергмана.
Линейка такого электронного счетчика показывает
еще одну интересную деталь. Она имеет два канала счета:
прямой, похожий на двоичный счетчик, и обратный, образуемый петлями обратной связи четных и нечетных ячеек счета. В
общем, тут есть простор для экспериментов.
Если вычислительные
способности Ф-счета надо еще определять и сравнивать,
то регистрирующие и контрольные функции по охране достоверности
информации такая система счета может выполнять уже сейчас.
Разработки Стахова подтверждают
этот вывод.
|