Search
Write a publication
Pull to refresh
11
0.1
Андрей Самойлов @ramayasket

Хакер математики

Send message

Математические бланки // Часть 4: объекты в памяти

Level of difficultyEasy
Reading time10 min
Views1.5K

Первые две статьи этой серии поставили ряд важных вопросов о математике. В третьей статье на них были даны ответы. Мы нашли память и время идеального мира (доска и маркер), и построили первые объекты (примитив и коллектор).

Мы также начали построение нейроматематики, в рамках которой получили строгое определение ИСТИНА, РАВЕНСТВО и ПРОТИВОПОЛОЖНОСТЬ. Определения этих объектов отсутствуют в Математической энциклопедии, так что нейроматематика уже стала в чём-то более богата, чем математика традиционная.

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

В процессе построения этих объектов мы также дадим определение ещё одному понятию, которое отсутствует в Математической энциклопедии, но которое крайне важно для математики. Это понятие - СЛЕДОВАНИЕ. Мы сталкиваемся с ним на каждом шагу; даже сейчас, в процессе написания/прочтения этих слов, которые следуют одно за другим.

Следование нам понадобится также и для того, чтобы строго определить МНОЖЕСТВО. Это понятие, конечно, есть в Математической энциклопедии, но описывается оно там лишь неформально, на интуитивном уровне. Множество - одно из самых базовых понятий, а в рамках нейроматематики оно выражает самую суть памяти. Хотите узнать, как? Не переключайтесь!

Читать далее

Математические бланки // Часть 3: математическая реальность

Level of difficultyEasy
Reading time15 min
Views3.5K

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

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

Исследование низшей математики - это 90% ожидания, 9% отчаяния, и только 1% озарения. Здесь, опустив 99%, можно сразу узнать результат. И в результате, памятью окажется то, что гораздо старше и математики, и самой человеческой истории. И оно всё это время перед глазами. Вот уж точно, хочешь спрятать, прячь на самом виду. Хотите узнать, что это? Не переключайтесь.

Читать далее

Математические бланки // Часть 2: философия

Level of difficultyEasy
Reading time7 min
Views4.1K

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

Нам придётся разобраться в родстве следующих вещей: человеческого мозга, математики, компьютера и ИИ. Человеческий мозг является предтечей всего остального из этого списка, но что именно наследуется при этом? Как поступили наследники с доставшимся богатством? И как при раздаче наследства была обделена математика?

Читать далее

Математические бланки // Часть 1: введение в проблему

Level of difficultyEasy
Reading time7 min
Views5.6K

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

Тем более неожиданно обнаружить, что в основаниях математики (самый центр науки) всё ещё подспудно присутствуют эти самые чёрные ящики, они же белые пятна (для краткости бланки). Правда, математические бланки настолько хорошо изучены снаружи, что поверх них даже построено целое здание математики.

Тем не менее, предъявление внутренней структуры этих объектов (которое заняло 10 лет) обещает замечательные, прорывные результаты в самых разных областях. Теперь предстоит показать всё это широкому кругу программистов и математиков, для чего и предназначена предлагаемая вашему вниманию серия заметок. Данная первая заметка описывает проблему математических бланков и демонстрирует, на что способно её решение.

Читать далее

Элегантные «квантовые» микросервисы

Level of difficultyMedium
Reading time22 min
Views5.7K

Статья описывает кейс разработки микросервисной системы. При работе над системой была использована теория, описанная в статье "Математические аспекты хорошего кода".

В рамках этого кейса описаны:

Снижение когнитивной нагрузки на программиста

"Квантовая" архитектура

Автоматическая обработка данных

Аспектно-ориентированное программирование

Генерация кода (T4)

Метапрограммирование

Межсервисное взаимодействие

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

Q: Почему "квантовые"?
A: Потому что являются одновременно микросервисами и монолитом.

Читать далее

Аддитивная композиция натуральных чисел и её интересные свойства

Reading time3 min
Views3.2K

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

В статье предлагается способ выразить натуральное число через уникальное множество простых чисел (включая единицу), сложение которых даёт исходное число. Такую композицию будем называть аддитивной, и она ранее не предлагалась.

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

Читать далее

База данных с 1 трлн записей и опыт использования отображаемых на память файлов

Reading time4 min
Views6.4K

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

По счастью, моя БД не совсем обычная: размер записи всего 1 бит. В базе должны храниться данные о простых числах. Соответственно, вместо того, чтобы хранить сами числа, проще хранить один бит (1 - простое число, 0 - композитное). И тогда, чтобы хранить один триллион битов, нужно всего 116 ГБайт.

Однако сделав такой файл, мы получили только лишь хранилище, но не собственно БД. Нам нужен код, который будет записывать и считывать данные. Традиционный FileStream был отброшен сразу, по причине его медленности. Постоянное чередование Seek и чтения/записи по 1 байту даёт результат примерно в 100 раз худший, чем сопоставленные в памяти файлы, опытом использования которых я и хочу поделиться в этой статье.

Читать далее

Математические аспекты хорошего кода

Reading time7 min
Views6.9K

Программисты постоянно стараются сделать код лучше, используя для этого различные практики. Однако само понятие хорошего кода крайне расплывчато, о чём свидетельствует одно только количество книг, посвящённых этой теме, а также их объём. Например, книга "Чистый код'' Р. Мартина содержит почти 500 страниц. Неужели нет возможности выразить хотя бы основные критерии хорошего кода короче?

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

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

Кроме того, для мышления необходимы память и время. Любая модель мышления (модель вычислений) обязана включать эти два понятия. Действительно, в машине Тьюринга роль памяти играет лента, а роль времени – головка. Аналогично, в современном компьютере эти две роли выполняют RAM и CPU, соответственно.

Итак, в нашем распоряжении три аспекта, относящиеся к мышлению: рассуждение, балансировка и природа памяти/времени. Эти аспекты напрямую относятся к самой сути программирования. Каждый из этих аспектов несёт в себе математику, которая и будет использоваться для вывода критериев хорошего кода.

Читать далее

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity