Хей-хо всем математикам-программистам! Я хочу сегодня вам чутка посрывать бошки через свои, возможно, безумные теории. 

Для начала я хочу описать этапы и итерации этой статьи:

У этой статьи будет несколько итераций по 8 этапов, ведь она будет сделана на основе круга хармона:

  1. Уже известная система

  2. Минусы этой известной системы

  3. Изменения, которые я предлагаю внести эту систему

  4. Очевидные недостатки, из-за которых другие, возможно, не додумались до того, о чем пишу я сейчас.

  5. Как эти изменения применил бы я

  6. Какие сложности все равно бы существовали, даже если применить это в этих сферах

  7. Взглянем на более общие примеры

  8. Подведем итоги этой итерации.

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

1.1. Привычные логические операции

Для начала я предупрежу, как мы будем работать с логическими операциями.

Я буду обозначать 0 или 1 вместо x в формате xxxx, где:

1 цифра - при a=1, b=1,

2 цифра - при a=1, b=0,

3 цифра - при a=0, b=1,

4 цифра - при a=0, b=0.

Вот обозначения некоторых привычных логических операторов:

and =1000,

nand=0111

or    =1110,

nor  =0001,

iff    =1011

niff  =0100

xor  = 0110

xnor=1001

1.2 Логические операторы. Минусы этой системы

В принципе, эта система выглядит почти завершенной

Но у этой системы есть несколько важных минусов (есть еще один - отсутствие аналога iff, который показывает 1011, но, я думаю, это можно обойти. Это не так критично, поэтому в этой статье это разбирать не будем) 

1. Нельзя задать начальное условие, не вводя цифр. Также, как раз для решения этой проблемы были созданы таблицы истинности

2. Довольно сложно полностью конвертировать таблицу истинности из цифр в операторы.

3. Довольно сложно упрощать схемы прямо в процессе создания, чтобы не запутаться в них, ведь не существует операторов, которые вели бы себя стабильно

Вообще, изначально меня заинтересовало, какие логические ��ператоры могут соответствовать математическим операторам. Спросил у ии, он мне выдал:

And=*,

Or=+.

То-есть, по сути, *=1000, а +=1110.

Потом я спросил еще раз примерно так, а для минуса и деления есть операторы? 

Как я понял, он сказал, что для минуса оператор xor, то-есть 0110, что логично, ведь 0-0=0, 34-34=0, 34-32=2, а 32-34=-2, а, так как минуса в булевой нет, либо это оператор not, который особо не покажешь, то 1 в середине подходит. Тогда минус - это реально xor.

Потом я спросил, а деление есть? Он ответил, что его ввести сложно, ведь в 0/0 ответа не существует, к примеру и остальные сложные случаи, которые в математике называются неопределенностями. Получается следующий минус:

4. В классической булевой алгебре нельзя найти аналог деления

1.3. Изменения, которые я предлагаю внести в логические операторы

После того, как я узнал, что такое xor, я захотел узнать свойства x. Спросил у ии, точную формулировку не скажу, так как я его поправил, так как он меня не сразу понял, но, все же, узнал, что xor - исключающее или, а x исключает те случаи, когда a и b одинаковы, то-есть, когда a=0 и b==0 или a=1 и b==1, то x=0, иначе x=1.

Тогда я подумал, что будет, если x добавить к and? 

У and таблица истинности - 1000, x исключает одинаковое, соответственно, xand=0000, а xnand=1111

1.4. Логические операторы+xand. Недостатки, из-за которых, как я предполагаю, другие не предложили ввести эти изменения

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

И будут совершенно правы, в середину схему вставлять xand и xnand совершенно бесполезно.

1.5. Логические операторы+xand. Какие способы применения этих изменений предложил бы я

Помните пункт 1.2.?

Там было 3 недостатка:

  1. Нельзя задать начальное условие, не вводя цифр, либо, если по-другому сформулировать, конвертировать в чисто булевые операторы

  2. Довольно сложно конвертировать схемы в чисто операторный формат, ведь не существует операторов для 0 и 1

  3. Довольно сложно упрощать схемы прямо в процессе создания, чтобы не запутаться в них, ведь не существует полностью стабильных операторов

  4. В классической булевой алгебре нельзя найти аналог деления

1.5.1. Логические операторы. Решение проблемы невозможности задания начального условия

Опишу эту проблему подробнее.

Как решаются, обычно, формулы

1 and 0 = 0

Цифры никуда не делись.

А можно сделать источник постоянного сигнала, то-есть, вставить xand и xnand вместо этих цифр:

xnand and xand = xand

Также, можно убрать равно:

xnand and xand xand

1.5.2. Логические операторы. Решение проблемы невозможности конвертации полностью цифрового формата в полностью операторный

В теории, можно было бы в компьютер закодировать булеву алгебру таким образом:

0000 1110 0000 0000,

Где первые 4 цифры - a,

Вторые 4 цифры - оператор,

Третьи 4 цифры - b,

Четвертые 4 цифры - результат.

Теперь можно это интерпретировать так:

Xand or xand xand

1.5.3. Решение проблемы с увеличением сложности схем по нарастающей

Ну, теперь получится. Теперь можно выводить константы, к примеру, если получится так:

A or not A=xnand

Not(A and not A) = xnand

И т.д. По сути, эти части можно сокращать и попросту отрубать то, что было до.

Также, если смотреть именно на схемы, то там можно эти операторы подключать для тестов в самом конце - чтобы, к примеру, было два параллельных подключения: 1 выводило сигнал, который пришел, а 2 выводил ошибку или успех. Либо для корректировки сигнала. Допустим, в схеме стоит or - 1110, а нужно, чтобы было так: 0110 или 0100. Теперь можно подключить к выходам этого or, если это возможно (я не помню), этот оператор и тогда этот оператор будет корректнее обрабатывать сигнал.

1.5.4. Логические операторы. Решение проблемы отсутствия деления

Ну, тут быстро:

or      - +

and   - *

xor    - -

xand - /

Про значение этого перевода для математики рассмотрим в следующей итерации

1.6. Какие сложности все равно бы существовали или появились, если применить данные изменения 

Никто не отменяет, что к этому может быть сложно привыкнуть или адаптировать уже существующие системы под это

Пока больше не знаю, пишите в комменты, разберем

1.7. Более общие примеры

У меня не было идей, как это использовать, поэтому обратился к ии.

Он дал такой пример:

temp_1 = (a ∨ b) ⊕ (c ∧ d)

temp_2 = ¬(b ∧ d) → temp_1  

temp_3 = (a ⊕ d) ∨ (temp_1 ∧ temp_2)

temp_4 = ¬temp_2 ∧ (c ∨ temp_3)

FINAL_OUTPUT = temp_3 ⊕ temp_4

А xand или xnand можно использовать для тестирования, к примеру, temp_1=xand

Тогда temp_2=¬(b ∧ d) → xand

И уже будет чуть более понятно, как будет реагировать система

temp_1 = (a ∨ b) ⊕ (c ∧ d)

temp_2 = ¬(b ∧ d) → temp_1  

temp_3 = (a ⊕ d) ∨ (temp_1 ∧ temp_2)

temp_4 = ¬temp_2 ∧ (c ∨ temp_3)

1.8. Подводим итоги этой итерации

Итак, у нас получилось:

xand   = 0000

xnand = 1111

and     = 1000

nand   = 0111

or        = 1110

nor      = 0001

xor      = 0110

xnor    = 1001

iff        = 1011

niff      = 0100

xiff      = 0010

xniff    = 0100

(xiff и xniff уже потом добавил. Думаю, механизм понятен)

2. Ввод булевой алгебры в тригонометрию

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

2.1. Привычная тригонометрия

Мы имеем единичную окружность. Делим его на 360 частей - 360°. Также мы имеем pi, которая является отношением длины окружности к диаметру - C/d. 

Еще мы делим круг на 4 четверти:

1 четверть - 0°-90°

2 четверть - 90°-180°

3 четверть - 180°-270°

4 четверть - 270°-360°.

Также мы рассматриваем четверть через x, y, где x - горизонт, y - вертикаль.

Будет указан в таком формате: (x, y), где вместо x или y может стоять 1 или 0, что может означать: 1 - данный график или присутствуют в этой четверти, 0 - данный график или точка отсутствуют в этой четверти

Так будет:

1 четверть - (1, 1)

2 четверть - (1, 0)

3 четверть - (0, 1)

4 четверть - (0, 0)

Я думаю, некоторые уже понимают, к чему я виду).

Синусы-косинусы разбирать не буду, особо не разбираюсь, да и они не особо меняются.

2.2. Минусы привычной тригонометрии

Минусов привычной тригонометрии я особо не увидел кроме, разве что, известной проблемы с pi и что везде мешается двойка. Тригонометрия пригодится для решения проблем и расширения понятий в других сферах.

2.3. Предлагаемые мной изменения тригонометрии

Во-первых, я предлагаю заменить pi на tau, формула для него - tau=2pi.

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

То-есть, 1000, что у нас равняется and, в тригонометрии может означать, что он присутствует только в 1 четверти.

А 1110, которым я предложил обозначать or, можно сказать, что присутствуют в 1, 2 и 3 четверти.

Теперь, если взять xand и xnand, то xnand будет равен 1, а xand - 0. Если рассматривать это как обороты, то за 1 оборот мы окажемся в той же точке, как когда не делали оборотов. Также, 1 оборот можно приравнять к tau. Получается, что 1 оборот=0 оборотов=1 оборот в обратную сторону=tau радиан = xand оборотов=xnand оборотов

Также, можно это связать с процентами и с в linux есть нотация - 777 для прав доступа к файлам.

Идем дальше. Можно рассматривать градусы:

45° - это же 1000 или and, а 90° - 1100 и т.д. Из этого можно сделать формулы.

2.4. Минусы рассматриваемых изменений

Необычность, возможная противоречивость, необходимость смотреть с другой стороны.

Если будут еще - пишите

2.5. Как эти изменения применил бы я

На данный момент - никак. Это больше мыслительный эксперимент и интересные закономерности математики

2.6. Какие сложности все равно бы существовали, если применить это в этих сферах

Необходимость запоминать выражения по типу √3

2.7. Взглянем на более общие примеры

45°+90°+180°=1000+1100+0110 и дальше преобразовать в логические операторы. С sin/cos также можно.

2.8. Подводим итоги

Теперь можно рассматривать тригонометрические выражения как логические операторы и переводить на язык компьютеров

3.1. Привычный матанализ

В матанализе вводятся концепции пределов, бесконечности и расширяется концепция нуля: lim(), ∞ и 0.

Однако, вводятся неопределенности, которые напрямую вычислять нельзя:

∞-∞, ∞/∞, 0/0, 0*∞, c/0, 0^0, ∞^0, 1^∞

Возьмем уравнения, которые приводят в качестве примеров в классическом матанализе, у которых в ответе выходят подобные неопределенности и попробуем вычислить их(было взято с ии, сам не осилю столько писать):

lim (x -> ∞) (3x² - 5x + 2) / (7x² + x - 10)

Как это решается:

Мы делим обе части уравнения на наибольшую степень - x²:

(3x²/x² - 5x/x² + 2/x²) / (7x²/x² + x/x² - 10/x²) = (3 - 5/x + 2/x²) / (7 + 1/x - 10/x²)

Находим предел:

Когда x -> ∞, слагаемые 5/x, 2/x², 1/x, 10/x² стремятся к 0.

lim (x -> ∞) (3 - 0 + 0) / (7 + 0 - 0) = 3/7

Заметьте, стремятся к нулю, а не равны нулю, но мы имитируем их поведение, как будто они равны нулю.

У нас получилось 3/7.

3.2. Минусы привычного матанализа

Для наглядности обозначим:

Число в скобки - периодическое число,

0.(0)1 или 0.{0}1 - число, стремящееся к нулю.

1(0).0 или 1{0}.0 - число, стремящееся к бесконечности

Первый и самый главный минус - мы проговариваем устно, что они стремятся к нулю, а вычисляем, что они равны нулю. То-есть, в прошлом примере мы получаем:

lim (x -> ∞) (3 - 0.(0)1 + 0.(0)1) / (7 + 0.(0)1 - 0.(0)1)=3/7

Так будет корректнее

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

Тот же пример, но на более высоком уровне:

3.3. Перейду сразу к предложениям

В прошлом подпункте я уже ввел обозначения:

Число в скобки - периодическое число,

0.(0)1 или 0.{0}1 - число, стремящееся к нулю.

1(0).0 или 1{0}.0 - число, стремящееся к бесконечности

Так как без обозначений не получилось бы показать минусов системы

Вернемся к примеру:

lim (x -> ∞) (3 - 0.(0)1 + 0.(0)1) / (7 + 0.(0)1 - 0.(0)1)

И вернемся к предыдущему этапу:

(3*1{0}.0² - 5*1{0}.0 + 2) / (7*1{0}.0² + 1{0}.0 - 10), тут уже появляются альтернативы:

К примеру, можно делить не на 1{0}, а на 2 в данном примере, что сделает решение совсем другим. Возможно, более простым(могу ошибиться в решении, не силен, оперирую общими концепциями):

2(1.5*1{0}.0² - 2.5*1{0}.0 + 1) / 2(3.5*1{0}.0² + 0.5*1{0}.0 - 5)

Так как это слишком объемная запись, я предлагаю в подобных уравнениях infty и 0 вычислять как переменные, к примеру, x и y, тогда неопределенности можно вычислять следующим образом:

Infty/infty=1

0/0=1

Или что-то в этом роде.

Я понимаю, что 0*0≠1, но 0*1=0, возможно, ближе 

Ну а это:

lim (x -> ∞)(3x² - 5x + 2) / (7x² + x - 10)

Можно сделать так:

(3∞² - 5∞ + 2) / (7∞² + ∞ - 10)

Тогда:

(3∞²/∞² - 5∞/∞² + 2/∞²) / (7∞²/∞² + ∞/∞² - 10/∞²) = (3 - 5/∞ + 2/∞²) / (7 + 1/∞ - 10/∞²)

Смысл, ведь, не меняется? А мы избавляемся от лишнего письма и увеличиваем прозрачность

И мы не сокращаем дальше, представляя 5/∞=0, ведь тогда мы притворяемся, что число, близкое нулю=нулю.

Пока остановимся на этом и посмотрим на булеву алгебру:

Мы запомнили, что:

*=and=1000

+=or=1110

/=xand=0000

-=xor=0110

Давайте представим, что такой результат получается после вычисления производных, 0 - число, меньшее бесконечности, а 1 - бесконечность. Это соответствует выводу, что любое число в производной равно нулю.

Теперь попробуем каждое число сделать производным.

Тогда мы получаем:

(3 - 5/∞ + 2/∞²) / (7 + 1/∞ - 10/(∞²))≈(3’-5’/∞’+2’/(∞²)’)/(7’+1’/∞’-10’/(∞²)’)

Вспоминаем:

1 and 1=1

Тогда 1*1=1

Тогда ∞*∞=∞, то-есть, ∞²=∞

То-есть:

(0-0/∞+0/∞)/(0+0/∞-0/∞)=0/0

Вспоминаем, что 0 xand 0=0

То-есть, производная этого выражения равна нулю и это мы получили чисто логическим способом, используя булеву логику.

3.4. Минусы данного предложения 

Их вы уже напишете, я их не знаю. Если кто найдет - добавлю сюда

4.3. Сравниваем тригонометрию и матанализ.

По сути, tau - это самая большая величина на окружности. То-есть, я думаю, будет логично сделать так: tau=∞.

Какая выгода от этого может быть?

Можно бесконечность переопределить не как абстрактную величину, а как круг. Тогда выражения по типу 2∞ становятся более осмысленными, ведь это, по сути, можно представить как 2 оборота.

Также сюда можно приписать проценты - ведь 100% теперь становится ∞ или tau.

А 50%=0.5∞ или 0.5tau.

Теперь можно предположить о существовании локальной бесконечности - некой максимумы для определенной группы.

Тогда все эти x, y, g можно понимать как локальные бесконечности.

То-есть, (5∞)’=(5tau)’ или =(5xnand)’

5.3. Изменения lim

Так как пределы в текущем значении становятся бесполезными, я предлагаю свое значение этих инструментов:

lim*(x=0, x+=1; y=1, y+=2) x+y=0+1*1+2…

Также он может выступать шаблонизатором:

lim{12}(x=1, x+=1)x=112212312…

Tau. Подводим итоги

Эту тему можно продолжать бесконечно, поэтому остановимся.

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

Кому интересно и дальше наблюдать за мной, вот мои каналы:

https://vk.com/club224029436

https://t.me/vosandrchan

И помните, играться с информацией весело.