нет.. именно из нескольких неделимых кислот, которые выделяют железы, получается определенное соединение, которое опрделенно действует на рецепторы.. если бы кислоты было 2, ты бы не флудил тут, а размножался делением на дне какой-нибудь лужи)
да. К сожалению, реальных вариантов пока что тока 2: 1- оно есть. 0- и вот его неcтало :'( про -1 (существование в унреале), наука пока умалчивает.
Небольшой экскурс в историю - древний Китай. Первая цивилизация вычислившая диаметр земли с 4% ошибкой. Инструменты - круги разного размера, тот что большого размера - внешний, меньший - внутри большого. Применение - движение млашего круга по внутренему периметру внешнего. По периметру с фиксированным шагом начерчены триграммы\гексограммы - первый пример применения двоичной системы - младшие черты с низу(целая черта - 1, преломлена - 0). В последствии этот калькулятор, после уничтожения практически всей методологии обьединителем китая, деградировал в гадательную практику по книге перемен(почему деградирова? - это не афишируется, но гадание по книге перемен - чернокнижие, прогнозирование будушего на основе текуших фактов с помошью вышеуказанной книги - нет). Если посмотреть на начертание круга гексограм, то над каждой гексаграммой будет ее номер = двоичный код гексограммы + 1( отчет начинается от единицы, а не от нуля. Неуверен точно, но нуль изобретение будистов) Через некоторое время появляется треричный аналог книги перемен, где уже есть дважды преломленая черта, НО особой популярности не обрела, осталась экзотикой... Аналогична ситуация с компами. Интересные соображения почему высказал Vov4ick и Black_mirror. Хранение информации в виде бинарности выгодно на магнитных носителях в виду их природы, но из-за проблеммы синхронизации, а вседствии применеия кодов еще не факт что хранить информацию в трехразрядном виде не выгодно - так или иначе даже бинарную информацию кодируем. В оптических носителях от бинарности уже ушли далеко. Главная проблемма треричности - быстродействие. В некоторых ВМ это не критично, например - в гидравлических(они и так тормоз, а возможность передать по трубке не два состояния, а три - экономически выгодно, особенно на больших расстояниях). По поводу XOR в треричной системе(2 wsd), а в какой XOR в десятичной? да и бинарная логика может спокойно без него обойтись. Существуют базис только на или-не и все хорошо. А китайская бинарная операция по зеркальному отображению числа(заркального по позициям) - есть ли оно в стандартной логике - отнюдь. И что? Мы ночами не спим и мучаемся "Как мы можем так жить?!!!". Отвед очевиден: в треричной логике будут свои уникальные операции. По поводу уневирсальности треричной системы - maxx совершенно прав - в отношенни единиц информации на затрачимаемое оборудоване на храниние треричная система идеальна. Доказательство можно прочитать в ПТЦА от Самофалова( http://pv.bstu.ru/informatic/Pricl_teoria_avtomatov_300dpi.djvu вроде на официальном сайте БГТУ открыто выложенно - значит не шара).
CodeTao любопытное утв. поправь, если я не прав: ты хочешь сказать, что третичная логика имеет некие операцие, кои нельзя сымулировать на двойках??? а можно примеры?
Подкрепить не чем не смогу, это мои личные сообрежения. Да и имел ввиду что использование их будет оптимальней чем переделавание бинарных. А с емулировать возможно все, так или иначе с математикой имеем дела, в независимости в каком базисе работаем.
CodeTao смысла в троичных машинах нет никакого, во всяком случае сейчас: тройка имеет один плюс - увеличивается плотность регистра, а потом сплошные минусы: > сравнительная дороговизна реализаций подобных процев; > скорость смены состояний регистра будет наверняка тормознутей нежели у двоек. давно известно что двойки не терпят сильных ЭМ полей, РИ и требовательны к качеству ИП, так тройка будет ещё более капризной. реально имеет смысл параллельно с двойками аналоговые машины развивать.
UbIvItS Я не такой катергоричный. Но единственный критерий в этом мире - практика, с ней не поспоришь. Так что я с тобой полностью согласен.
понравилась статейка http://www.trinitas.ru/rus/doc/0226/002a/02260051.htm а вот это пипец какойто. http://www.trinitas.ru/rus/doc/0016/001c/00161474.htm полный, и троичный (колайдер отдыхает) :'(
покурив статейку (а также дикорастущего растения) http://klein.zen.ru/old/Large_bursh_new.htm в очередной раз убеждаюсь что даже ученые c (нобелевскими премиями) ничего не знают. а статейка про "пипец"- так просто гон, и кг/ам. Ну как может Солнце усилить лучи (причем опасно), из ядра нашей Галактики (aka Млечного Пути), представляющее собой какбэ черную дыру? вобщем ерунда все это по сравнению с процессами бурлящими в оперативной памяти компутера.. К чему и хотелось собсна вернуться. Поскольку- "Программирование есть банальное управление, временным состоянием электрических линий", то важнейшим из них (гм как для электроного так и IT мира), являеться срстояние 0 и 1. Оно есть истиная цифра. К тому же простая, как цифровой пробник на светодиоде. Лампочка зажглась - 1. Не горит 0, (или чето с напряжением, питающим электронную цепь). все остальное в той или иной степени аналог, в обработке которого (типа DSP технологий) опять же все козыри (и разработаные алгоритмы) у двойки. Касаемо -"троичной логики/системы счисления" - тема, разумееться, имеющая право на существование, однако за нее льеться больше абстрактно-кошмарного флуда, и голословных утверждений, нежели реальных вещей, которые можно на ней сотворить. не раскрытая кстати тема. ибо как сказал Лао-Цзы: "Дао создал один, один создал два, два создало три, три создало все вещи" Котя сам по себе, троичный комп, опять же это уровень - "Monkey See, Monkey Do" в отличии от ЭВМ на "атомах сознания". в них сила.
Что-то вы не про то думаете: отрицательные числа -- это мелочь. А вот сама двоичная логика в современном применении была бы гораздо удобнее, будь она троичной. Потому что троичная естественнее. Сейчас в большинстве случаев для обозначения некого состояния (в программе или там в БД) используются 2 значения: 1 (установлено) и 0 (не установлено). При этом большинство задач подразумевает (хотя не везде это реализовано) третье состояние: хз (не определено). По-нашему это будет null что в коде, что в БД. Т.е. тройки не (-1, 0, 1), а (0, 1, хз). Как это реализовано битами? Как вариант, выделяется отдельный бит под null; а на скриптовых языках это может быть и лишнее поле объекта "Скаляр" типа "флажок", традиционно реализуемого как int8-int16-int32. Т.е. уже не говоря о железе, получается хранение данных менее эффективное, чем заложенный в базу null. Та же ерунда и при передаче данных: даже если у нас какой-нибудь флаг ровно одного состояния (0/1) или строго натуральное число, то в программе (в хорошей программе) оно передаётся между блоками (скажем, возвращается из функции) как пара: (значение, флаг_ошибки). Ну или ошибка -- это отдельный exception, т.е. лишний выход из блока (что по идейным соображениям тоже плохо). А булева алгебра при таком раскладе -- вообще ошибка научной эволюции похуже ОТО Эйнштейна Вот из последних задач, где на это натыкался: адрес хоста в IP-сети, используемый для роутинга (то, на чём работает весь инет). Сейчас везде тупо используется 2 четырёхбайтных значения: шаблон IP-адреса и маска IP-адреса. Потому что адрес (один адрес получателя одного пакета данных) может быть как отдельным айпишником, так и целой сетью: 192.168.0.0-192.168.255.255. Записывается это так: 192.168.0.0 / 255.255.0.0 (или 192.168.0.0/16, что в памяти всё равно хранится как шаблон + битовая маска). При этом для однозначности в код обычно вставляются специальные обработчики, проверяющие, чтобы шаблон не дай баг не содержал биты, помеченные маской как изменяемые (потому что 192.168.10.20 / 255.255.0.0 означает ровно то же самое, но представлено другой парой и для сравнения неудобно). В троичной же системе такой адрес записывался бы куда более естественно: 192.168.x.x (т.е. первые 2 октета фиксированы, вторые 2 изменяемые). И обработка его велась бы тривиально просто: накладывается (троичный AND) нужная маска и всё, никаких проверок и неоднозначностей. В общем, реально не хватает такой логики, хоть и привычнее считать в двоичной.
Попытаюсь прояснить различие между двоичной и троичной логикой на простом примере оператора проверки условия: Код (Text): двоичная логика: ============== if условие1 then Operator1() else Operator2() endif троичная: ========== if условие1 then Operator1() elseif NOT условие1 then Operator2() else (во всех остальных случаях!) Operator3() endif Так что троичная логика это никакая не эмуляция двоичной, это реальная жесть и срыв башни. Т.к. кухонно-бытовой логикой тут и не пахнет ....
Какой же это срыв -- банальная и унылая реальность. Приведённый пример тоже часто встречается, хотя и записывают его в несколько более другой форме, которая удобнее для понимания современному "булевому" программисту: Код (Text): $debit = get_user_debit($uid, $backet_arr, $credits_arr); if (is_null($debit)) { warn_msg("Недостаточно данных для проверки счёта!"); jump_exit(); } elseif ($debit <= 0) { warn_msg("Недостаточно средств для выполнения операции!"); jump_choose(); } else { // Debit is OK: starting transaction ...} Или другой случай, ещё более частый: Код (Text): SELECT uid FROM users WHERE (abonpayment_date <> current_date) OR (abonpayment_date is null) А в троичной форме оно бы выглядело тривиально и очевидно.
Мдя... ? Вот я хоть убей не вижу никакой тривиальности и очевидности. см.например http://ru.wikipedia.org/wiki/Троичная_логика А уж реализовать ее, трехзначную логику, в ЦЭВМ, т.е. в железе и в софте(!), на самом деле не намного проще, чем построить искусственный разум. Так что не зря вы пока не видите таких ЦЭВМ в продаже. )) Причем это совсем не ИМХО
4apa: Так статья плохая, потому и не видно: заумь сплошная и краснобайство (хотя и интересно). Вот английская короче и понятнее: http://en.wikipedia.org/wiki/Ternary_logic А вообще, речь шла о переводе в троелогичную запись встречающихся в программировании примерах. Конечно, сейчас никто не владеет синтаксисом такой записи, поэтому всё кажется сложнее. Но если с нуля изучать либо один, либо другой подход, то троичную логику понять проще, т.к. она более похоже описывает привычную реальность. В ней null не вуалируется, как некое специальное значение (которого как-бы нет в рассматриваемых числовых множествах, но который всё равно надо везде отдельно учитывать), а вводится в оборот как полноправное значение. Вот возьмём пример выше: что проще объяснить первокласснику -- запись 192.168.0.0 / 255.255.0.0 или 192.168.x.x? Да проще, действительно проще, чем двоичную. Потому что что в железе, что в софте сейчас именно троичная логика и используется, только неэффективно реализуется двоичными методами и двоичными ячейками для данных. Ну опять же, примеры я приводил.. В общем, это вопрос исключительно привычки и устоявшегося технологического стандарта. Поэтому я тут не пишу про то, что надо всё бросить и работать на троичную машину, но в перспективе надо иметь её в виду. Особенно учитывая нынешние технологии виртуализации -- начинать можно будет и не на Сетуни..