жизнь городов как двоичный код
Как объяснять двоичную систему счисления
Кто-то только входит в IT-мир, кто-то объясняет информатику своему чаду.
Довольно быстро вы обнаружите, что не так-то просто объяснить, как работает двоичный счёт.
Это вам очевидно, что после 11 идёт 100, а новичку это ещё долго может быть непонятно.
Так вот, чтобы увеличить скорость понимания, мы решили сделать дидактический материал.
Проблема
Важно отметить, что даже распиаренный курс Гарвардского университета по компьютерным наукам «CS50» не помогает.
Парень из американского университета просто заявляет, что «нуль — это нуль», «один — это один», а потом идёт 10, а потом 11. Понятно? Думаю, нет. Вот спросите кого-то, кто не программист, а каким будет следующее число — высока вероятность, что он не сможет ответить. Слишком быстро проскочили идею о переносе разряда.
То же самое касается школьных методов перевода: во-первых, методы эти академически сухи, во-вторых, не интуитивны — например, не очевидно, почему после каскадного деления на 2 нужно ставить биты задом наперёд.
А если непонятно, то и не интересно. А если нет интереса, то и запоминается с трудом.
Мы это всё учли, и решили сделать интересное и постепенное объяснение.
Что мы предлагаем
Сначала нужно объяснить, как вообще работает обычная десятичная система счисления — и про конечный «алфавит» цифр, и про идею переноса разряда. Так развивается понимание принципа «системы счисления».
Только потом можно переходить к идее двоичной системы — и вот обучаемый уже медленно, но довольно уверенно говорит «1, 10, 11, 100».
Далее, мы решили попробовать совсем не школьный метод — объяснение двоичного счёта на пальцах: это когда загнутый палец это 0, а разогнутый это 1.
Я проверял это на подростках: показываешь им: «это 1, это 2, это 3 — теперь покажите мне 4». И весь класс сосредоточенно, медленно показывает средние пальцы. Отличницы в эсхатологическом восторге, задние парты тыкают друг другу в лицо и кричат «на тебе четвёрку!».
Провокативно? Да. Запоминается? 100%.
Теперь, когда тема стала «своей», можно переходить к теме перевода чисел из одной системы счисления в другую — начать лучше с классического школьного сухого перевода (если честно, то больше чтобы постращать).
А уже потом с помощью анимации объяснить идею перевода прямо на пальцах, и потом опять же на пальцах пересчитать число 132 в средние пальцы уже на обеих руках.
На десерт показываем, где двоичная и 16-ричная системы применяется в реальной жизни.
Двоичная система — это например QR-коды вокруг нас.
А 16-ричная система это в основном коды цветов в CSS и хеши разных стилей, от MD5 до UUID.
Итак, вот весь пакет видео-уроков (они бесплатные, в Ютубе):
О базовом, шестеричном коде Мироздания
Или принцип воздействие-реакция. Этот двоичный код лежит в основе организации, создания всей так называемой неживой материи, однако лучше, из-за уважения к Создателю, называть ее просто физической или химической материей. Ведь все, что творит Создатель, является хоть в малой степени одухотворенным, просто имеет разные уровни сознания и разные периоды развития.
Квантовая физика – это действительно революция в физике, она заставила многих ученых пересмотреть свои взгляды на мироздание, и не случайно – благодаря своей связи с мистиками и оккультистами, а также вере в Бога, квантовые физики получили посвящение в троичный код, при помощи которого организовано бытие более одухотворенной и более разумной материи – растений, насекомых, животных и нас с Вами.
Что же такое троичный код? Это «Да», «Нет» и «Может быть, вероятно, одновременно «Да» и «Нет», или ни «Да», ни «Нет». При этом это самое «Может быть» связывает «Да» и «Нет» между собой. Эта связка дает свободу творчества, элемент хаоса, непредсказуемости и случайности, делает возможной свободу выбора. Это уже не жесткая линейная программа развития, как у физической материи, а более гибкая, многомерная программа развития, где свобода выбора или случайность, или творчество (что одно и то же, по сути) является необходимым элементом программы развития, позволяет выстраивать ее многомерно, а не линейно.
Поэтому квантовики традиционно считают, что наша вселенная разумна и состоит из материи, энергии и информации, которая организует материю и энергию в различные формы и при этом сама обладает способностью к самоорганизации.
Сейчас на основе троичного кода создаются квантовые компьютеры, которые имеют большие перспективы в области решения нелинейных задач и могут одновременно обсчитывать и находить скрытие закономерности в огромных объемах информации.
Вся сложность их промышленного производства заключается лишь в их излишней уязвимости к любым влияниям извне, однако над этой проблемой сейчас активно работают прикладники.
По сути, троичный код – это код работы нашего сознания, и если удастся создать полноценный мощный квантовый компьютер, то он будет полностью моделировать работу нашего интеллекта. По сути, промышленное создание искусственного интеллекта уже не за горами.
Недостатком двоичного кода в компьютере является то, что он не дает возможности системе самостоятельно анализировать поступающую информацию, он способен только отрабатывать программы, которые в него заложены.
Когда будет создан полноценный квантовый компьютер, наступит золотая эра робототехники.
Однако хотелось бы взглянуть в более далекие перспективы. Я считаю, что осознание троичного кода мироздания – «ДА», «НЕТ» и «Может быть», Материи, Энергии и Информации – недостаточно. Я считаю, что в основе мироздания лежит не троичный, а шестеричный код.
И что человечество может, если будет того достойно, получить не только информационные, но и духовные, божественные и абсолютные технологии, которые намного превосходят информационные технологии и квантовое понимание окружающей нас реальности. При этом я не исключаю, что могут быть более изощренные виды кодов, но пока вышел только на уровень шестеричного кода, который на данном этапе своего развития считаю базовым для организации нашей вселенной.
На этом уровне мы уже можем, по примеру Творца, создавать не только киборгов и искусственный интеллект, но создавать себе подобных живых существ!
Для их создания недостаточно информационных технологий, необходимо одухотворение.
Таким образом мы имеем четверичный код. Пойдем дальше. Представим себе, что между «Да», «Нет», «Может быть» и «Не может быть!» находится еще нечто.
Пусть это будет «Не возможно». Это уже не мистический, не духовный уровень, а уровень самых настоящих чудес. Это уже божественный пятеричный код. На этом уровне мы можем переделывать самих себя, решать проблемы своей вселенной и создавать свои собственные миры. Если мы организованы на основе пятеричного кода, мы можем, подобно Христу, воскрешать мертвых и превращать воду в вино. Ведь это действительно не возможно, с нашей точки зрения. Однако причина этой не возможности лишь в косности и инерции нашего сознания, коему недостает веры и открытости к новому, еще не познанному.
Ну, и последнее, о чем хотел написать в этой статье. Что же такое шестеричный код, который, как я считаю, лежит в основе нашей вселенной?
Представим себе, что между «Да», «Нет», «Может быть», «Не может быть» и «Не возможно» находится «Все возможно или возможно все». Это уже не божественный, а абсолютный код. Теперь приложим свое новое понимание этого шестеричного кода к мирозданию, и какую же новую, отличную от квантовой, картину мы получаем?
Согласно шестеричному абсолютному коду организации вселенная имеет реальную форму организации бытия (материальную), потенциальную форму организации бытия (энергетическую, квантово-волновые поля), бесформенную организацию бытия (информационную, вакуум), синтетическую организацию бытия как абсолютное единство материальной (Любовь), энергетической (Сила) и информационной (Разум) форм организации бытия в единое целое или Дух (поле Духа), далее следует не субстанциональная форма организации бытия или потенциальное бытие (не путать с реальным бытием в потенциальной, скрытой форме), это божественный уровень и небытие, чистое бессознательное или при осознании чистое осознание, абсолютный уровень.
Таким образом, получается, что наша вселенная материально-энерго-информационно-духовно-божественно-абсолютна, или состоит из связанных между собой материальной, энергетической, информационной, духовной, божественной и абсолютной вселенных, что полностью соответствует шестеричному базовому коду ее организации.
Значение двоичного кода – почему компьютеры работают с единицами и нулями
Компьютеры не понимают слов и цифр так, как это делают люди. Современное программное обеспечение позволяет конечному пользователю игнорировать это, но на самых низких уровнях ваш компьютер оперирует двоичным электрическим сигналом, который имеет только два состояния: есть ток или нет тока. Чтобы «понять» сложные данные, ваш компьютер должен закодировать их в двоичном формате.
Двоичная система основывается на двух цифрах – 1 и 0, соответствующим состояниям включения и выключения, которые ваш компьютер может понять. Вероятно, вы знакомы с десятичной системой. Она использует десять цифр – от 0 до 9, а затем переходит к следующему порядку, чтобы сформировать двузначные числа, причем цифра из каждого следующего порядка в десять раз больше, чем предыдущая. Двоичная система аналогична, причем каждая цифра в два раза больше, чем предыдущая.
Подсчет в двоичном формате
В двоичном выражении первая цифра равноценна 1 из десятичной системы. Вторая цифра равна 2, третья – 4, четвертая – 8, и так далее – удваивается каждый раз. Добавление всех этих значений даст вам число в десятичном формате.
1111 (в двоичном формате) = 8 + 4 + 2 + 1 = 15 (в десятичной системе)
Учет 0 даёт нам 16 возможных значений для четырех двоичных битов. Переместитесь на 8 бит, и вы получите 256 возможных значений. Это занимает намного больше места для представления, поскольку четыре цифры в десятичной форме дают нам 10000 возможных значений. Конечно, бинарный код занимает больше места, но компьютеры понимают двоичные файлы намного лучше, чем десятичную систему. И для некоторых вещей, таких как логическая обработка, двоичный код лучше десятичного.
Следует сказать, что существует ещё одна базовая система, которая используется в программировании: шестнадцатеричная. Хотя компьютеры не работают в шестнадцатеричном формате, программисты используют её для представления двоичных адресов в удобочитаемом формате при написании кода. Это связано с тем, что две цифры шестнадцатеричного числа могут представлять собой целый байт, то есть заменяют восемь цифр в двоичном формате. Шестнадцатеричная система использует цифры 0-9, а также буквы от A до F, чтобы получить дополнительные шесть цифр.
Почему компьютеры используют двоичные файлы
Короткий ответ: аппаратное обеспечение и законы физики. Каждый символ в вашем компьютере является электрическим сигналом, и в первые дни вычислений измерять электрические сигналы было намного сложнее. Было более разумно различать только «включенное» состояние, представленное отрицательным зарядом, и «выключенное» состояние, представленное положительным зарядом.
Для тех, кто не знает, почему «выключено» представлено положительным зарядом, это связано с тем, что электроны имеют отрицательный заряд, а больше электронов – больше тока с отрицательным зарядом.
Таким образом, ранние компьютеры размером с комнату использовали двоичные файлы для создания своих систем, и хотя они использовали более старое, более громоздкое оборудование, они работали на тех же фундаментальных принципах. Современные компьютеры используют, так называемый, транзистор для выполнения расчетов с двоичным кодом.
Вот схема типичного транзистора:
По сути, он позволяет току течь от источника к стоку, если в воротах есть ток. Это формирует двоичный ключ. Производители могут создавать эти транзисторы невероятно малыми – вплоть до 5 нанометров или размером с две нити ДНК. Это то, как работают современные процессоры, и даже они могут страдать от проблем с различением включенного и выключенного состояния (хотя это связано с их нереальным молекулярным размером, подверженным странностям квантовой механики).
Почему только двоичная система
Поэтому вы можете подумать: «Почему только 0 и 1? Почему бы не добавить ещё одну цифру?». Хотя отчасти это связано с традициями создания компьютеров, вместе с тем, добавление ещё одной цифры означало бы необходимость выделять ещё одно состояние тока, а не только «выключен» или «включен».
Проблема здесь в том, что если вы хотите использовать несколько уровней напряжения, вам нужен способ легко выполнять вычисления с ними, а современное аппаратное обеспечение, способное на это, не жизнеспособно как замена двоичных вычислений. Например, существует, так называемый, тройной компьютер, разработанный в 1950-х годах, но разработка на том и прекратилась. Тернарная логика более эффективна, чем двоичная, но пока ещё нет эффективной замены бинарного транзистора или, по крайней мере, нет транзистора столь же крошечных масштабов, что и двоичные.
Причина, по которой мы не можем использовать тройную логику, сводится к тому, как транзисторы соединяются в компьютере и как они используются для математических вычислений. Транзистор получает информацию на два входа, выполняет операцию и возвращает результат на один выход.
Бинарная таблица истинности, работающая на двоичной логике, будет иметь четыре возможных выхода для каждой фундаментальной операции. Но, поскольку тройные ворота используют три входа, тройная таблица истинности имела бы 9 или более. В то время как бинарная система имеет 16 возможных операторов (2^2^2), троичная система имела бы 19683 (3^3^3). Масштабирование становится проблемой, поскольку, хотя троичность более эффективна, она также экспоненциально более сложна.
Кто знает? В будущем мы вполне возможно увидим тройничные компьютеры, поскольку бинарная логика столкнулась с проблемами миниатюризации. Пока же мир будет продолжать работать в двоичном режиме.
Бог и двоичный код
В конце 1970-х логик и философ науки Курт Гёдель предположил, что по определению не может существовать ничего более масштабного, чем высшее существо, и выдвинул тезис существования Бога, опираясь на логико-математическую аргументацию. Гёдель был намерен доказать так называемый «онтологический аргумент» существования Бога.
Наиболее известное достижение Гёделя — это сформулированные и доказанные им теоремы о неполноте, опубликованные в 1931 году. Одна из них гласит, что любая эффективно аксиоматизируемая теория, в достаточно богатом языке, достаточном для определения натуральных чисел и операций сложения и умножения является неполной, либо противоречивой.
Чуть ли не на днях математики нашли дивной красоты цепочку соотношений, которую считают доказательством существования Бога:
1 * 8 + 1 = 9
12 * 8 + 2 = 98
123 * 8 + 3 = 987
1234 * 8 + 4 = 9876
12345 * 8 + 5 = 98765
123456 * 8 + 6 = 987654
1234567 * 8 + 7 = 9876543
12345678 * 8 + 8 = 98765432
123456789 * 8 + 9 = 987654321
Допустим. Но тогда получается, десятичная система была нам дана свыше? Дело не только в том, что у нас десять пальцев? Или не случайно их 10? И, следовательно, существует тот, кто нам ее дал?
Но, если существование Бога считать доказанным, то лично мне видится в этом несколько больше.
8 = 2 в степени 3.
Три – понятно, мы живем в трехмерном пространстве. Время – понятие мутное, может, и нет его вовсе, а происходит все сразу? Тот же Курт Гёдель, решая уравнения Энштейна, пришел к выводу, что строение Вселенной может иметь такое устройство, в котором течение времени является закольцованным (метрика Гёделя), что теоретически допускает путешествия во времени. Большинство современных физиков считают это решение верным лишь математически и не имеющим физического смысла. А жаль! Вот бы появиться перед д’Антесом за мгновение перед его выстрелом и отстрелить ему голову! (Хотя он по-человечески мне симпатичен, но Пушкин гораздо роднее).
А в основе всего этого лежит идея гениального Готфрида Лейбница о нуле и единице. Именно в таком формате представляется все электронная информация. Мы слышим музыку, смотрим фильмы, рассматриваем картины, а на самом деле есть только нули и единицы. Если провести аналогию с современным миром, то есть много похожего. Инь Ян, добро – зло, черное – белое, радость и печаль, орел или решка, ну и так далее и так далее. Кстати, вопросы, ситуации, проблемы можно решать наиболее просто, принимая решения, суть которых будет заключаться в дух словах: да или нет. Такого вот – «не знаю» не допускается. Хотя есть, конечно, моменты, где нам предоставляется ну просто куча всевозможных вариантов, но суть в том, что мы можем и ли принять или нет.
Явление может произойти или не произойти, опять ноль или единица. Самолет долетит или упадет, астероид или пролетит мимо, или нам на голову грохнется, человек решил пойти именно этой дорогой …
И подход к жизни, с позиции нуля и единицы весьма эффективен, т.к. только тот, кто знает, чего он хочет, а чего нет – чувствует себя увереннее. И отношение к любым проблемам с этой позиции заметно все упрощает, ведь 2 варианта всего, а у нас как в голове за минуту может промелькнуть 100 различных, причем, скорее всего, по большей части неудачных.
А главное, не подтверждает ли сам Бог (если он существует) современные идеи физиков о виртуальности или полувиртуальности нашей жизни? Помните фильм «Матрица»? Только в нашем случае, скорее группа студентов проводит учебный эксперимент в качестве курсовой работы.
А чем этот эксперимент закончится? И в чем заключается? Может, именно в том, поймем ли мы, что это эксперимент?
Тогда аппаратуру они сейчас отключат, напишут заключение и пойдут на тусовку.
Кстати, когда-то я интересовалась религиозной литературой, и поразила меня Тора, в ней открытым текстом говорится о виртуальности мира! Ну, почти открытым.
Вот и все.
Жизнь городов как двоичный код
Все заглавные буквы русского алфавита закодированы неравномерным двоичным кодом, в котором никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Известно, что все кодовые слова содержат не меньше двух двоичных знаков, а слову БАРАН соответствует код 10011111011010. Какое наименьшее количество двоичных знаков может содержать сообщение, кодирующее слово РОБОТ?
Заметим, что буква А повторяется в слове БАРАН два раза. Буква Н стоит в конце слова, кодовое слово 10 для буквы Н не подходит, поскольку тогда невозможно будет подобрать такое кодовое слово для буквы А, которое может встретиться в коде 10011111011010 два раза. Кодовое слово 1010 для буквы Н не подходит, поскольку в этом случае либо невозможно будет подобрать такое кодовое слово для буквы А, которое может встретиться в коде 10011111011010 два раза, либо невозможно будет подобрать такое кодовое слово для буквы А, которое не будет нарушать условие Фано. Значит, букве Н соответствует кодовое слово 010.
Букву А можем закодировать только кодовым словом 011, поскольку при выборе кодового слова 11 не останется кодового слова для буквы Р, не нарушающего условия Фано, а кодовое слово 1011 не встречается в коде 10011111011010 два раза. Тогда букве Б соответствует кодовое слово 10, а букве Р соответствует кодовое слово 111.
Буква О встречается в слове РОБОТ два раза, закодируем её кодовым словом 00. Букву Т закодировать кодовым словом 110 нельзя, поскольку не останется кодовых слов для остальных букв русского алфавита, поэтому букве Т соответствует кодовое слово 1100. Тогда сообщение, кодирующее слово РОБОТ, содержит 3 + 2 + 2 + 2 + 4 = 13 двоичных знаков.