banner banner banner
Рекурсия
Рекурсия
Оценить:
Рейтинг: 0

Полная версия:

Рекурсия

скачать книгу бесплатно

Рекурсия
Виктор Каика

Многие думают, что ВРЕМЯ – это самый ценный человеческий ресурс. Однако это не так. Самым ценным человеческим ресурсом является ПАМЯТЬ – ведь если человек не помнит дня вчерашнего, то и времени для него, увы, не существует.

Рекурсия

Виктор Каика

Нет сложных систем, есть системы с большим количеством простого, а сила мелочей в их количестве.

© Виктор Каика, 2021

ISBN 978-5-4493-9974-8

Создано в интеллектуальной издательской системе Ridero

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

Но не означает ли это, что тоже самое происходит и в наших головах, и мы видим, слышим и ощущаем то, чего на самом деле не существует?

    Виктор Каика

Ранний завтрак

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

«Ха! Не спит и полон сил – мне снова везёт! Это приятно, похоже, белая полоса не собирается кончаться, и пасьянсик продолжает складываться», – радостно подумал Александр, но эта длинная мысль промелькнула быстро, одним, вбирающим в себя все эти слова образом, без паузы.

– Юра, здравствуй! Не разбудил? – тем не менее немного смущаясь и скромно улыбнувшись, спросил он.

– Здорово, дружище! Нет, я уже проснулся, но ты действительно ра?ненько, – рассмеялся ответивший. – Рад слышать твой голос, однако что сподвигло тебя на такой ранний звонок? День рождения у меня не сегодня!

Саша тоже рассмеялся, делая короткую паузу в возникшем диалоге, но так и оставив шутку без ответа, сразу перешёл к теме, ради которой потревожил приятеля.

– Юра, когда бы ты смог ко мне приехать? – спросил Александр, что стало для собеседника ещё более неожиданным. Да, они давненько не встречались, и пора бы уже, но чтобы вот так, вдруг, да ещё спозаранку.

– Во как!.. А что случилось-то? Я ещё и позавтракать-то не успел, – весело ответил Юрий.

– Ах что случилось? Ничего не случилось! Просто где-то любовь глупым шуткам научилась! Очень жаль, что научилась! Зачеркни эти дни! Не пиши, не звони… Извини,.. извини,.. – нарочито забвенно выводя мелодию и, конечно, не впервой демонстрируя прекрасный голос и слух, при этом всё-таки улыбаясь, пропел Саша куплет из ассоциативно по отношению к заданному вопросу возникшей в голове песни, выдавая тем самым не просто хорошее, а очень хорошее настроение.

– Хм… Похоже, для радости есть повод! Машину брать или нам маячит перспектива поднимать бокалы и произносить тосты? – тоже улыбаясь спросил Юра.

– Думаю, отметить это, конечно же, стоит, но нет, в данном случае мне нужна очень трезвая голова, и твоя в том числе.

– Даже так? Что всё-таки произошло? Судя по всему, что-то приятное? Признавайся!

– С удовольствием! Но, увы, поверь мне, это совершенно не телефонный разговор. Вот приедешь, расскажу. Сможешь?.. Дело быть может и не столь срочное, но, боюсь, одному мне этого даже не осознать, и просто безумно хочется поделиться случившимся!

– Хм… Ты меня заинтриговал! Так! Сегодня у нас понедельник?.. А в выходные о чём ты думал? Почему вчера не позвонил?

– В том-то и дело, это случилось сегодня ночью, я еле дотерпел до утра, и то, боялся, что ты ещё спишь.

– То-то я вскочил ни свет ни заря! Так это, выходит, ты мне телепатировал? – снова засмеялся Юрий, делая ударение на слове «ты». – Хорошо, я понял… Но хоть позавтракать-то я могу?

– Юра, я тоже ещё не завтракал, предлагаю трапезу провести вместе, у меня.

– А! Ну тогда другое дело! – радостно ответил Юрий. – Только без меня готовить не начинай, ты же знаешь, я люблю наблюдать, как ты это делаешь. Кстати, чем ты меня сегодня побалуешь? Ан, нет, не говори! А то я изойду слюной, пока доеду!

Они оба весело рассмеялись.

– Всё! Договорились! Жду! – сказал Александр, завершая разговор.

В современном обществе бытует мнение, что хакер – персонаж опасный и отрицательный, потому как многие считают это синонимом киберпреступника. На самом же деле, хакер – это престижное звание, своеобразный маркер в оценке профессионализма, наивысшая степень признания компьютерным сообществом таланта программиста, способного разобраться в чужом коде, зачастую, на самом низком и самом сложном уровне – уровне ноликов и единичек, но безусловно, моральные и этические качества таких профессионалов для человеческого социума весьма важны.

Сегодняшний виртуальный мир – это уже во многом почти полное отражение мира реального, в котором точно так же присутствуют как добро, так и зло. Если вдруг вам «посчастливилось» однажды выйти из дому и при этом с ужасом осознать, всем телом ощущая впрыск адреналина, что вы забыли взять с собой ключ от прямо на ваших глазах захлопывающейся за вами железной двери, неужели вам придёт в голову выбивать её кувалдой или раскурочивать дверной косяк ломом? Ну нет, конечно! Вы обратитесь к специалисту, способному впустить вас обратно, в квартиру, не повредив запирающего механизма вашего замка. Безусловно, человек, обладающий такими способностями, может стать опасным для общества, но это вовсе не повод называть его преступником, не так ли?

Аналогичные ситуации возникают и при работе с компьютерами, и если вы по какой-то непонятной для вас причине, включая свой ноутбук, вдруг получаете назойливо повторяющееся, неприятное и обескураживающее, а порой и бросающее в холодный пот сообщение «Неверный пароль» или ещё более кошмарное – «Вы превысили количество попыток войти в систему», то в некоторых случаях помочь вам сможет только хакер, и Александр был именно таким профессионалом. Он, долгое время работая на стыке электроники и программирования, не только знал такие диковинные для простого обывателя сочетания слов, как то – контроллер прерываний, мультиплексор данных или слово состояния процессора, но и представлял, как и почему они работают, а также способен был писать программы в машинных кодах, используя шестнадцатеричную систему счисления. Впрочем, любая шестнадцатеричная цифра автоматически в его голове превращалась как в двоичную, так и обратно, и об этом он даже не задумывался, он просто это видел.

Его друг детства, Юрий, с которым он до сих пор поддерживал дружеские отношения и которого только что пригласил к себе в гости, был микробиологом, тоже фанатом и профессионалом своего дела и работал в криминалистической лаборатории, весьма оснащённой современнейшим оборудованием. Мало того, он был начальником этой лаборатории и почти всегда имел возможность вот так, запросто, распоряжаться своим временем.

В ожидании друга Александр снова подошёл к своему компьютеру и, в который уже раз разглядывая отображаемое на экране монитора, испытывая ни на минуту не отступающее чувство практически детской радости и улыбаясь, глубоко вздохнул. «Надышаться можно только ветром», – всплыли откуда-то из глубин памяти слова, неизвестно чьи, неизвестно когда туда попавшие. Он настолько долго решал эту трудную задачу, что до сих пор не верилось, что это на самом деле случилось, и, лишь видя результат, такой цветной и красивый, ещё даже красивей, чем он ожидал и представлял себе, понимал, что это реальность! Он снова и снова широко улыбался и ощущал, что сейчас ему не достанет ни бегать, ни прыгать, ему хотелось летать! Эта радость умножалась пониманием того, что он – единственный на всей планете во веки веков человек, кому удалось это сделать! Чувство это – ошеломляющее! Радость была настолько велика, что она не вмещалась в душе, она могла разорвать её на части, она вырывалась, удержать её было невозможно, ею надо было делиться!

Но, увы, именно сейчас, когда в этом была потребность, делиться как раз таки было не с кем – жена вместе с дочерью поехала гостить к своей маме, то бишь к тёще, и да, с одной стороны, это давало ему возможность, не мешая никому спать, сидеть за компьютером и ночью, потому что компьютер почему-то стоял в спальне, но сегодня, в этот зарождающийся, воистину исторический день, когда это наконец-таки произошло – ему очень хотелось, чтобы она была рядом! На данный момент она была единственной, кто знал, чем занимается её любимый муж, хотя и относилась к этой идее скептически, и надо сказать, небезосновательно, но во?т он, во?т он, момент, воочию подтверждающий его правоту! И он знал, что она будет им гордиться!

Александр посмотрел на часы – прошло уже тридцать минут, но всё равно, утро ещё раннее, а значит, дороги пустые, и Юра должен был уже появиться… И только он об этом подумал, как раздался уныло курлыкающий, затухающий, словно страдальческий крик умирающего аиста, звонок домофона. Саша быстрым шагом подошёл к пульту у входной двери и молча нажал кнопку, разрешающую войти в подъезд. Затем открыл настежь дверь на лестничную клетку и стал дожидаться, когда его гость поднимется на пятый этаж. Вот уже слышны звуки шагов, Саша знал, что Юра не любит пользоваться лифтом, значит, это был он. Наконец, на лестничной площадке появилась довольная, улыбающаяся физиономия его друга, и Саша, отступая в сторонку и освобождая проход в коридорчик своей небольшой, но уютной квартирки, тоже улыбнулся в ответ.

– Привет! – сказал Юра, продолжая улыбаться.

– Привет, раздевайся, мой руки и проходи на кухню, – ответил Александр после крепкого рукопожатия. – Если хочешь, бери тапочки, хотя, у нас тепло.

Через пару минут они оба уже были на кухне, и Юрий с вниманием и удовольствием наблюдал за тем, как хозяин квартиры готовит завтрак. Это может показаться странным, но Саша, в отличие от других программистов такого класса, получал удовольствие не только от работы, но и от еды. Вдобавок к этому он любил готовить и делал это быстро и вкусно. Был конец мая, и на местном базарчике у бабушек уже появилась молодая картошка. Саша вчера купил её и, держа в руках шесть светло-жёлтых клубней размером сантиметра по четыре в диаметре, сказал:

– Сначала мы её слегка отварим. Картошечка молоденькая, и кожура у неё настолько тонкая и нежная, что чистить её нет необходимости, просто потрём её мягкой губкой в проточной воде.

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

– А посолить? – спросил его наблюдавший за происходящим Юра.

– Нет, солить мы её не будем, – ответил улыбаясь Александр. – Если её посолить, то она станет плотной, а я хочу, чтобы она была рыхлой внутри. Картошка молодая, и долго варить её нельзя, чтобы не разварилась. Как вода закипит – всего пару-тройку минут. А потом мы её аккуратно обжарим до золотистой корочки, которая не даст ей рассыпаться, и она получится у нас, как яйцо всмятку – и целая, круглая снаружи, и рассыпчатая, мягкая внутри, – снова улыбнулся Саша, весело посмотрев на приятеля.

После этого Саша открыл холодильник и вытащил кусок копчёного сала с тоненькими прожилками мяса.

– Ты пирожки со шпеком ел? – спросил он Юру и, не дожидаясь ответа, продолжил. – Вот это сало используют при приготовлении пирожков со шпеком, а мы сейчас нарежем его и нажарим шкварочек.

С этими словами он ловко, но не без усилий, пальцами отодрал от сала шкурку, однако не выбросил, а снова положил в холодильник и, посмотрев на Юру, сказал:

– Шкурку я не выбрасываю, я её потом обязательно использую, когда буду варить гороховый суп – она придаст ему особый аромат.

Затем он взял острый нож и с узкой стороны стал нарезать плоские кусочки сала толщиной примерно миллиметров по пять. Нарезав таким образом шесть кусочков, сложил их стопочкой и стал нарезать соломкой, толщиной где-то в сантиметр, поперёк прожилкам мяса, так, что каждый кусочек содержал и сальцо?, и мясцо?. Саша достал среднего размера сковородку, поставил её на плиту, положил в неё нарезанные кусочки сала и стал жарить, постоянно помешивая деревянной лопаткой.

Сало под воздействием температуры стало растапливаться и весело зашкварчало, издавая приятный запах и навевая вкусовые фантазии. Довольно-таки скоро кусочки сала превратились в шкварочки, но не доводя их до хрустящего состояния, Александр снял сковородку с плиты и ловко и аккуратно вытащил их той же лопаткой на тарелочку. А к этому времени закипела вода, в которой варилась картошка.

Саша засёк время и через две минуты снял кастрюлю с плиты. Аккуратно слил воду, открыл крышку, давая остаткам влаги испариться, и оставил картошку немного просохнуть.

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

Запах отварной картошки смешался с запахом жареного копчёного сала, и Юра невольно сглотнул слюну.

– А посолить? Уже пора, наверное, – не унимался он, пытаясь внести свою лепту в процесс приготовления пищи.

– Нет, солить и теперь не следует, – ответил Саша. – Да, несмотря на то, что сало хранят в покрытом слоем соли виде, оно солью не пропитывается, даже если его потом коптят. Но у нас, как я уже говорил, сало не обычное, а с прослойками мяса. А мясо, в отличие от сала, просаливается очень хорошо, и когда мы его ужаривали, топлёный жир получил солёность в нужном для нашего блюда количестве.

Тем временем, картошечка приобрела золотистый оттенок и выглядела неимоверно привлекательно и аппетитно. Пару движений, и она уже была разложена на двух тарелках. Далее Саша действовал быстро и молча. Он открыл холодильник, вытащил оттуда два куриных яйца, аккуратно, не нарушив целостности желтков, разбил их ножом над сковородкой, и когда они растеклись по горячей поверхности ровными кругами, равномерно посыпал белок шкварками и стал жарить.

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

Последним действом было приготовление салата, но не из тех безвкусных как трава, а из по-настоящему пахнущих помидоров и огурцов, заправленного нерафинированным подсолнечным маслом, тоже украшенного и видом, и запахом маленьких веточек зелёного укропа, и вот только его Саша и посолил.

На столе, как по мановению волшебной палочки, появились ножи, вилки и ложки, друзья сели за стол и приступили к трапезе, утоляя голод, достигший апогея. Ели они молча.

Птички бабочки

Позавтракав и выпив по чашке кофе, Саша и Юра, наконец, перешли к разговору, ради которого они собрались.

– Ну, так что же всё-таки стало причиной нашей, столь ранней встречи? – спросил улыбаясь Юра, снова проявляя любопытство, уже не подавляемое голодом и перебравшееся на первое место в приоритетах желаний.

– Идём, я тебе кое-что покажу, – сказал Александр, домыв посуду и вытирая руки полотенцем. Что-что, а на кухне у него всегда был порядок!

Они прошли в комнату к компьютеру, и уже издали Юра увидел на экране монитора своё собственное изображение, то есть своё лицо, как на фотографии, цветное.

– Когда это ты успел меня запечатлеть неулыбающегося? Что-то я не припомню такого снимка. Ты освоил «Фотошоп»? – рассмеялся Юрий.

– А это вовсе и не фотография, но похож, правда? – спросил Александр.

– Ну, я бы сказал, очень похож, ты стал рисовать по памяти? – не унимался Юра, пытаясь понять, в чём подвох.

– Юра, ты не понял. Это трёхмерное изображение!

С этими словами Александр двинул мышкой, и отображаемая на экране монитора Юрина голова, стала поворачиваться, что позволяло её рассматривать со всех сторон. Юра улыбаться перестал, а Саша продолжил речь.

– А ежели кому не нравится серьёзное выражение лица, то это поправимо. Где тут у нас управление улыбательными мышцами? Вот оно, – гордо сказал Александр, и в следующий момент глаза виртуального Юрия слегка сощурились, а на лице появилась радушная улыбка.

После этого Саша посмотрел на друга, но, увидев его физиономию, широко улыбнулся и решил ещё кое-что подправить, и, еле сдерживая смех, произнёс:

– А ежели мы все мышцы расслабим, то увидим то, как ты выглядишь сейчас.

Сказав это и внеся изменения, он уже не смог себя сдерживать и громко рассмеялся, потому что у трёхмерного изображения округлились глаза, и открылся рот, и со стороны это выглядело так, будто Юра смотрит не в экран монитора, а в зеркало. Быстро поняв это, Юрий тут же улыбнулся и, слегка смутившись, посмотрел на Сашу.

– Ты что, приобрёл 3D-сканер?! – удивлённо спросил он. – Но когда ты успел меня отсканировать?!

– Юра, – ответил Александр. – Это не сканер. Это совсем другое. Я расшифровал ДНК!

Теперь уже рассмеялся Юрий.

– Саша, ДНК уже давно расшифрована!

– Юра, ты меня не понял! Под расшифровкой я имею в виду совсем другое! То, что сегодня известна последовательность нуклеотидов того или иного организма, знают все, но назвать это расшифровкой… Да, извлечь из клетки и записать ДНК в виде текста – это большое достижение, но использовать его лишь для сравнения с другими образцами при установлении отцовства – слишком примитивно. И на самом деле как раз таки его, этот текст, и нужно расшифровывать. Ну да, геном состоит из множества комбинаций четырёх азотистых оснований – аденина, гуанина, цитозина и тимина, и вы соответствующими этим названиям буквами, то бишь – AGCT, так его и записываете. Но вот что, например, обозначает запись ACGTTCAC? Любой тебе скажет, что это бессмыслица. А ведь это код! И не просто код, а программа, управляющая развитием и жизнедеятельностью любого живого организма! У человека она длиной не в восемь букв, как в этом примере, а в три миллиарда! Ты представляешь, что там наворочено?!

– Саша, ты хочешь сказать, что ты дизассемблировал ДНК?!

– Ишь ты, каких слов нахватался! – рассмеялся Александр. – Не зря ты со мною общаешься! Но ты пойми, дизассемблировать код можно, только зная систему команд процессора, для которого этот код написан, и который этот код выполняет.

– Да, кстати, Саша, давно уже хотел тебя спросить, ты мне можешь на пальцах пояснить, что это за зверь такой – система команд процессора? А то, каждое в отдельности – вроде слова понятные, а вместе – что обозначают, понять не могу, – рассмеялся Юрий.

Александр на секунду задумался. Потом взял лист бумаги и карандаш, написал подряд последовательность из четырнадцати цифр – 76015018125003 и спросил:

– Юра, это может быть кодом?

– Наверное, – ответил Юра и шутя добавил. – На номер телефона это не похоже.

– Но если это код, то что он обозначает, можно только догадываться, правда?

Юра ничего не ответил и молча продолжал слушать.

– Теперь представь, что это, действительно, программа, и существует устройство, для которого она написана – устройство со своей системой команд. Например, оно различает и умеет выполнять следующие четыре команды, – сказал Саша и написал под цифрами четыре строчки.

1) 76 – повернуться и стать лицом на север.

2) 01 – пройти вперёд столько шагов, сколько указывают следующие две цифры.

3) 18 – пройти направо столько шагов, сколько указывают следующие две цифры.

4) 50 – копать вниз на столько метров, сколько указано в двух следующих цифрах.

– Ну-ка, ну-ка, – заинтересовался Юра улыбаясь. – Дай, я попробую… Так. Стать на север, пройти вперёд 50 метров, пройти направо 12 метров, копать вниз на глубину 3 метра! Как всё просто! – он весело засмеялся.

– Да, когда известна система команд, действительно всё просто. Ты знаешь, почему в своё время компьютеры «Макинтош» проиграли гонку компьютерам IBM? Одной из причин было то, что процессоры, которые использовала фирма Apple, имели закрытую архитектуру – никто не знал их системы команд, хотя они и были как минимум на порядок круче процессоров фирмы Intel. А без системы команд, любая программа – это абсолютно бессмысленный набор ноликов и единичек или в нашем случае набор из букв AGCT, и, Юра, я эту систему команд нашёл!

– Так, так, так… То есть ты хочешь сказать, что это изображение, есть результат работы твоей программы, на основе данных, которые содержит моя ДНК? Так вот почему ты тогда у меня её выпрашивал… Когда это было-то, два, три года назад? И главное, так и не признался, для чего. Но погоди, разве это возможно? Как ты получил изображение моей физиономии? Как ты это сделал?

Саша улыбнулся.

– Не знаю, кто создал наш прекрасный Мир, мы наслаждаемся жизнью, и в повседневной суете практически никто из нас этого не осознаёт, но в нём все написанные программы выполняются, и работает всё именно так, как было задумано, и мыслю я, что жизнь – это и есть выполнение программы ДНК! Птички и бабочки летают не потому что их кто-то этому учит, а потому что это заложено в программе! Человек стремится познать этот Мир, и наша задача – всего лишь понять, как и почему это происходит, как это работает? Да, для того, чтобы программа выполнялась, нужен компьютер. В природе сама живая клетка является компьютером. Я, как программист, наверное, представляю это не так, как микробиологи, – засмеялся Александр. – Я вижу не просто живую клетку, я вижу совершеннейший компьютер. Полностью автономный, в белковой оболочке, через которую в него наряду с кислородом попадает топливо (углеводы), сжигаемое затем в молекулярном реакторе, называемом митохондрией. Так вырабатывается энергия для работы этого компьютера. Но при сгорании топлива образуется углекислый газ и вода, они выводятся из компьютера через ту же белковую оболочку. Представляешь, насколько продуман этот материал? Ведь кроме этого, через него проходит и различного рода строительный материал, позволяющий прежде всего – размножаться! Компьютер строит сам себя! Он увеличивается в размере, дублирует все свои внутренности и делится, перетягивая сам себя, пополам! Раз, и уже два компьютера! Раз, и уже их четыре! И всё это происходит по программе, записанной в ДНК.

Саша задумчиво посмотрел вдаль.

– Ты только представь, какая непостижимая сила, какой невероятной мощности задействован механизм, насколько в нём всё предусмотрено и продумано, что даже безмозглые мотыльки на непреодолимых для осознания расстояниях, гонимые ветром, съедаемые птицами, находят друг друга и спариваются, и два ничтожно маленьких, микроскопических компьютера, женский и мужской, один – умеющий лишь ждать, а второй – махать хвостиком и искать, объединив своё программное обеспечение, превращаются в мощнейший, просто потрясающей силы программных решений компьютер, способный делиться! Из одного единственного компьютера образуются тысячи, а они всё делятся и делятся, соединяясь своими белковыми оболочками, и не абы как, а тоже строго по программе, и до тех пор, пока эта часть программы ДНК не будет выполнена, и новый организм не станет полноценной копией своих родителей.

Сначала это стволовые компьютеры, но затем по той же программе каждый новый компьютер получает профориентацию – они становятся специализированными. Одни, например, становятся костной тканью и формируют будущий скелет. Другие объединяются в систему тех или иных органов, мышц, нервов, мозга. Потом их становится миллиарды!