![](https://habrastorage.org/webt/wy/nj/x9/wynjx99snqsitqsvhaspzqhs2mc.png)
1 / 0
При освоении программирования встречается один смешной спор, начинать адресацию элементов в массиве с единицы или с нуля. С одной стороны, если у тебя один элемент в массиве, то и номер у него должен быть равен единице. С другой стороны, когда выбираешь куда поместить первый элемент, то надо подыскать место, равное количеству элементов до помещения — нулевое. То есть, чему равен адрес последнего элемента — количеству элементов до помещения или после? — Вот в чём здесь вопрос.
Но, как бы то ни было, для себя я просто разделили на два понятия: индекс и номер. Индекс относится уже не к элементу, а к его месту, к величине отступа, которая для элемента номер один равна нулю. Элемент с индексом ноль — первый. Всё просто.
Соревнование между нулём и единицей может быть описано более детально.
Зря-зря
Спуск
Простые числа
Золотая середина
Предыдущее и следующее
Уровни
Что было до нуля
Вообще без нуля
Часть вторая:
Двойные функции
Двойные числа
Биномиальная свёртка
Происхождение чисел Бернулли
Откатная функция
Пи
Функция состоит не только из нулей
Суммируя
Умножая
Симметрия Дзеты
Ось
Откуда там вообще нули?
Исторически счёт принято начинать с единицы, и это оправдано, так как отводит нулю его место — то что было в самом начале, до начала счёта. И этим указывает, что такое сам счёт. Это нахождение элемента между предыдущим и предстоящим. «Предыдущий» в начале счёта ноль, «предстоящий» элемент тоже вполне определён. Основное действие — то что понимается под «предыдущим» меняется на то что получено, и счёт можно продолжать.
![](https://habrastorage.org/webt/ht/k6/q1/htk6q1zxvec3dnozxrpswzd1qfy.png)
После того как у нас получено два элемента можно решиться на нетрадиционное действие — оба полученных элемента применить как предыдущий и предстоящий. И таким образом пойти не вперёд, но и не назад, а «вглубь». Более того, даже с самого начала первый элемент можно использовать не как «предыдущий», а как «предстоящий», с повторным использованием в качестве «предыдущего» элемента ноля. И тогда элемент, полученный после единицы, будет не двойкой, а двойкой «обращённой».
![](https://habrastorage.org/webt/hm/0c/ms/hm0cmspdqq6kazn4x15nzfyzneo.png)
Общий порядок, в котором из двух элементов один всегда больше другого, сохранится, но порядок счёта уже не всегда идёт в направлении возрастания. В целом, схема счёта сильно изменится, добавится выбор: полученный элемент ставить на место меньшего в следующем поиске, или на место большего. Схема счёта превратится в бинарное дерево — каждый элемент в нём содержит две возможности для движения дальше.
Каждая ветка такого счёта представляет собой аналог всего дерева — это самый древний и самый простой фрактал.
Самое интересное, что такой фрактал очень хорошо кодируется, каждый элемент обозначается двумя кодами, взятыми из прямого счёта. Для того чтобы закодировать текущее число, нужно сложить коды границ — для первого кода сложить первые, для второго сложить вторые. А коды для первоначальных границ это
![](https://habrastorage.org/webt/qv/eq/2f/qveq2fc_5ajwwrbmmfgpziblpac.png)
На первом шаге получается
Кроме сокращения ничего не мешает дроби быть на этом дереве, и они там присутствуют все без исключения. Так что, любые два натуральных числа можно объединить в пару, от которой отделить общий множитель, и останется рациональное число, представляющее собой не просто пару чисел, а натуральное количество шагов, для каждого из которых сделан бинарный выбор. Либо просто единица, если без шагов.
![](https://habrastorage.org/webt/eu/kv/db/eukvdbjg5ykjlhit9phl6oeqaxo.png)
Количество шагов без изменения направления напрямую отражается в элементах цепной дроби:
Можно предположить, что при шаге от нуля тоже существовал выбор — идти в большую или меньшую сторону, этот выбор соответствует знаку числа. Две ветки могут образовывать одну такую линию, которая включает в себя ноль, а на всех остальных шагах выбирается максимальное отличие. Так и находятся все целые числа,
![](https://habrastorage.org/webt/ob/bu/jb/obbujb3mmizwk0xsswzq_yfcdwm.png)
При визуальном анализе, если расставить на плоскости элементы дерева по координатам, соответствующим кодам, то каждая точка будет иметь одну проекцию из точки ноль-ноль на линию, в которой числитель единица. Каждая проекция на этой линии всегда будет находиться строго между проекциями от границ своего выбора. И наоборот, каждой точке проекции будет соответствовать число.
А теперь можно сыграть в игру. Ведущий загадывает число, а игрок отгадывает. Представь, что ты игрок. Ведущий будет отвечать только «угадал» или «больше/меньше» — про отношение загаданного числа к твоему.
![](https://habrastorage.org/webt/1f/hh/33/1fhh33cylee0uz-rrq6ebykzd5i.png)
После множества последовательных «больше» и «меньше» у тебя может возникнуть ощущение, что ведущий не загадал никакого числа, что ты спускаешься по бинарному дереву, а он просто наугад говорит «больше» или «меньше». И ты прав, есть такой вариант. Но между собой варианты — загадал он или нет — ты не отличишь.
Даже при нескончаемых вопросах можно считать, что существуют иррациональные числа, которые содержат неограниченное число бинарных выборов, а ведущий просто загадал одно из них.
Что будет, если первым числом спросить о единице, а ведущий после этого в принципе не перестанет отвечать «меньше»? Окажется, что он загадал ноль. Но ты начал с единицы, и попался.
А если это будет настоящая угадайка, то узнать, угадал ты или нет, не получится, тоже надо будет угадывать. В такой игре достаточно обойти число, ведущему в момент угадывания рандомно сказать «больше/меньше», а затем всегда повторять противоположное. И в конце мы приблизимся к тому же результату. После этого никаких сомнений, что
Конечно, это странная игра — в которой надо угадать, выиграл ты или нет. Но «угадай-ка» — она такая, кто начал играть, тот доверился ведущему.
Зря-зря
Если для иллюстрации шаги в большую сторону изображать линиями по одной диагонали, а шаги в меньшую сторону вдоль другой диагонали, начать с точки, обозначающей ноль (или единицу), и каждый раз уменьшая длину линии в два раза — мы получим вполне компактный рисунок в виде треугольника. В нём обозначенные числа чётко поделятся на лежащие на нижней линии и на расположенные выше.
![](https://habrastorage.org/webt/so/uc/g7/soucg7cshdji49owoebpqjsu9ra.png)
То есть, числа чётко делятся на два вида, рациональные и иррациональные. Но в процессе игры всегда есть текущий шаг, и числа делятся на три вида, «уже угаданные на данном шаге», «пока что не угаданные» и «числа, которые не зная, не угадаешь».
Можно разделить на три вида совсем по-другому. На «угадываемые», «не угадываемые, но загаданные» и «вообще не загаданные». Ведь причина невозможности угадать может быть не только в бесконечной цепочке необходимых вопросов. Что если другой причины каждого ответа ведущего, кроме желания продолжить игру, нет? Он и сам не знает числа.
Объединяя, вместо двух типов чисел нужно отметить четыре типа. Рациональные делятся на обозримое число шагов и необозримое, а иррациональные делятся на чёткие и мутные. Для рациональных деление оставляет эти числа в рамках общей группы. А для иррациональных — нет, мутные числа исключаются из чисел. Но и после этого не стоит ожидать отсутствия подвоха, так как кто угодно может загадать мутное число, пользуясь тем, что угадывающий не может это распознать в принципе. Это, так сказать, троллинг, который возможен всегда и везде — в каждой игре.
Не зря утопили Гиппаса, сделавшего открытие о такой человеческой беспомощности. Ну, или зря.
Спуск
Количество шагов для такого угадывания числа я бы назвал уровнем погружения. У каждого рационального числа есть соответствующая характеристика, выражающаяся натуральным числом. Нулевой уровень будет у нуля (или у единицы, если выбор знака не считать уровнем).
Легко ли по обозначению числа в виде дроби узнать, в большую сторону или меньшую был первый шаг после единицы? Легко — достаточно сравнить эти обозначения, и если знаменатель меньше числителя, то определённо — шаг был в большую сторону.
Легко ли по обозначению узнать, в какую сторону был совершён последний шаг? Нет, последовательность выяснения направлений шагов по обозначению проста только от первого к следующему. Узнали, что числитель больше знаменателя — выяснили первый шаг. Затем от числителя можно отнять знаменатель, и тогда для новой дроби мы как будто исключили этот шаг из последовательности. И по тому, что будет у неё больше, числитель или знаменатель, можно будет узнать про второй шаг исходной дроби. И так далее.
Когда при такой цепочке расчётов мы придём к тому, что числитель равен знаменателю, это будет значить, что цепочка закончилась. Но если они ещё будут отличаться от единицы, значит исходная дробь могла быть сокращена. Число, на которое можно дробь сократить, правильно называть наибольший общий делитель числителя и знаменателя. Если два числа перемножить и поделить на наибольший общий делитель, то получится наименьшее общее кратное. В нём все три части: собственная для первого числа, собственная для второго числа и общая часть для обоих чисел при перемножении встречаются по одному разу.
Запомнить, что из этого что, очень просто: «наибольший...» всегда меньше, чем «наименьшее...».
«Л» — Логика.
Произведение:
![](https://habrastorage.org/webt/oo/e3/cq/ooe3cqrclagzqw17bwpv_lc48wu.png)
На этом изображении умножение представлено как сложение степеней.
Деление как разница степеней:
![](https://habrastorage.org/webt/d0/xn/f9/d0xnf91gjauovpnrtioffpitmjk.png)
Дерево рациональных чисел, о котором здесь было рассказано, называется «Дерево Штерна — Броко».
Для каждого рационального числа есть парное число — в котором уровней столько же, но значения выбора направления при погружении расположены в обратном порядке. И парные числа тоже можно организовать в дерево, «Дерево Калкина — Уилфа». В таком дереве для получения числа следующего уровня нужно на выбор, либо к числителю добавить знаменатель, либо к знаменателю числитель. И хотя порядок расположения элементов в этом дереве в поперечном направлении не сохраняет последовательность возрастания, очевидно, выяснять направление погружения здесь удобнее наоборот, начиная с последнего выбора.
![](https://habrastorage.org/webt/8r/e0/0s/8re00scxe0s46y3porauosviaoe.png)
В порядке возрастания:
![](https://habrastorage.org/webt/xu/24/sg/xu24sgzdh_u61t1ilpkgra4wnr0.png)
Жаль, но для иррациональных чисел пары не найти — выбор у парного числа определяется начиная с последнего уровня, а у иррациональных чисел последнего уровня нет. Просто нет.
Простые числа
Все дроби входящие в дерево не сокращаются. Если среди дробей вида
![](https://habrastorage.org/webt/gy/vi/92/gyvi928xztdihimrvecn7de7ov4.png)
Если дробь
Для таких дробей, как и для всех, которые не сокращаются, числитель и знаменатель можно возвести в любую натуральную степень, и она не сократится. Но для этой дроби можно возвести в любую степень отдельно
Доказательство: При простом
![](https://habrastorage.org/webt/y_/yk/ac/y_ykacmfrccj5aqwhr2evlfpnpk.png)
Числа
Золотая середина
Каждый шаг спуска по дереву рациональных чисел может быть характеризован не только как шаг в большую или меньшую сторону, шаг начиная со второго либо повторяет направление предыдущего шага, либо его меняет. Из-за этого можно организовать спуск без сохранения предыдущих границ, достаточно сохранить предыдущее число. Каждый шаг в кодах будет вычисляться либо как повторное добавление разницы с предыдущим числом, либо как прямое сложение текущего и предыдущего, при развороте оно выступает в качестве границы.
В этой схеме можно выделить пару особых чисел — которые получены постоянной сменой направления. Это такое отношение, в котором периодически то к числителю добавляется знаменатель, то к знаменателю числитель, образуя значения из последовательности фибоначчи, и соответствуя золотому сечению.
![](https://habrastorage.org/webt/wi/i5/up/wii5upj5s9ipvulr1yyvhpdkqfs.png)
Порядок для таких чисел легко обратить, даже при неизвестном результате вариантов обращения всего два — в соответствии того, каким в результате будет самый первый выбор.
Предыдущее и следующее
Для числа, полученного последовательным погружением, зная предыдущее число легко восстановить последовательность выборов в обратном порядке, у одного из вариантов отклонение меньше. Но даже если предыдущее число неизвестно, о его характеристиках кое-что можно сказать.
Для соотношения дробей из натуральных чисел
Это можно представить как учёт различия отношений числителей и знаменателей
Уровни
График разграничения уровней:
![](https://habrastorage.org/webt/1j/mh/7o/1jmh7ogf7e9uinti1etq6zoyt3k.png)
Рациональные числа одного уровня — для построения которых нужно сделать одинаковое количество бинарного выбора — изображены здесь как граница области одного цвета. Дроби, которые могут быть сокращены, представлены на этом графике местами, через которые не проходит граница цветовой области.
Если соответствующие места выделить, то график будет выглядеть так:
![](https://habrastorage.org/webt/8l/yr/ue/8lyruelmidwfo5tdrhggvr2svi0.png)
Выделены сокращающиеся дроби.
В этом представлении простым числам больше подходит название «бешенные числа» — они соответствуют такому удалению от центра, на котором на всей линии нет ни одного места, где бы цвет не переключился.
Дроби, в которых один из элементов ноль, могут быть сокращены на оставшийся элемент. Поэтому эти точки тоже можно отметить.
![](https://habrastorage.org/webt/z5/xy/--/z5xy--4vxero8xve5_lvjq7tfym.png)
У таких дробей нет своего уровня, не смотря на то, что соответствующие точки лежат на границе области.
Вот ещё пара графиков, с чуть более различимыми соседними цветами:
![](https://habrastorage.org/webt/fx/ep/kr/fxepkr3_azgemeio8zhdn5atncc.png)
![](https://habrastorage.org/webt/vp/zs/9n/vpzs9ns80zmz0ok6p-afmkauumc.png)
Если нужно, вот ссылка на хайрез.
Что было до нуля
А что если ноль — это не начало цепочки выбора?
Можно использовать определение «достижимых» чисел, что каждое число связано с тремя другими без образования циклов — и это определение предельно симметрично. Для нуля — единица и минус единица являются вариантами выбора для шага вперёд. Осталось выяснить, что за элемент является для нуля возвратным.
![](https://habrastorage.org/webt/mz/lr/mn/mzlrmnuiy0nqbjabooorjic-qgu.png)
Для того чтобы выяснить как это кодировать можно попробовать восстановить дерево в обратную сторону, исходя из свойства золотого сечения, ведь числа Фибоначчи можно рассчитать и обратно. Тогда схема дерева будет выглядеть так:
![](https://habrastorage.org/webt/n0/sp/7b/n0sp7bxkbyuc7wfmf0h2l1qbptg.png)
Видно, что для части обратных чисел кодирующие дроби имеют противоположный знак одновременно и у числителя и у знаменателя. Это можно поправить.
Посмотрите на здоровое дерево рациональных чисел и на дерево курильщика:
![](https://habrastorage.org/webt/la/dp/va/ladpva8w9cmtdejqsrsft_uj8nc.png)
Деревья аналогичны, но во втором удалось завернуть «возвратную» часть всех чисел на половину ветки, считавшейся от ноля «вперёд». При завороте для отрицательных чисел сдвинулись коды, к знаменателю добавлена абсолютная величина числителя. Бесконечность при этом вошла в схему без различия в знаке, так же как ноль.
Так что, даже если добавить «возвратные» числа, они все поместятся в обычных кодах. Можно изобразить это дерево так:
![](https://habrastorage.org/webt/x-/6o/qp/x-6oqp9bxksomdyncw4nnrthcxa.png)
Числа так же располагаются по сетке:
![](https://habrastorage.org/webt/xl/1v/4b/xl1v4b443kes9usaztvelrshh3q.png)
Самоподобие позволяет анимировать это дерево:
![](https://habrastorage.org/webt/if/ab/l2/ifabl2g_nwode46m5y4vg9quvlg.gif)
Существует несколько моделей для интерпретации числа обратного нулю.
В симметричной схеме можно выделить две ветки, между которыми нет выбора, они просто являются предыдущими друг для друга. Тогда будет: одна ветка рациональных чисел, с листками иррациональных, и такая же ветка обращённых по порядку чисел, в том числе «количественно максимальное» число.
![](https://habrastorage.org/webt/yx/cc/bi/yxccbiws_pbka-o_66sfq4m4jiy.png)
Проблема этой схемы только в том, что в ней нет места «среднему» числу: хотя край веки от нуля идёт к «максимальному», а край ветки от «максимального» идёт в ноль, определить, где они пересекаются нельзя без введения такой же структуры чисел, наложенной на оригинальную структуру как бы накрест. Для получения средних от средних нужно будет опять добавлять веток.
![](https://habrastorage.org/webt/9k/es/mf/9kesmf6jjfa9qkztwgadjdukqjm.png)
Другая модель состоит в том, что возвратным к нулю является «осевое число», а в качестве возвратных к нему определены положительная и отрицательная середины между минимальным и максимальным количественным числом.
![](https://habrastorage.org/webt/ma/rs/4f/mars4faffn_lxu05mqlc30n1p9c.png)
Для отражения максимального количественного числа нужно добавить такую же структуру, с тем же осевым числом, но с промежуточным расположением веток относительно веток первой структуры.
И от этого вместе с «максимумом» сразу появятся «середина до середины».
![](https://habrastorage.org/webt/3c/ez/40/3cez40kkegjpmpkd6coag1-ei0y.png)
Так делить можно и дальше, построение средней ветки аналогично нахождению промежуточного числа. При дальнейшем делении ветки множатся, повторяя в своей структуре не только свою внутреннюю часть, но и самих себя. Даже последовательность число-ветка можно продолжить и брать порядок из самих чисел. Лишь бы порядок числа не догнал его самого.
Ветки можно от середины добавлять и в сторону возрастания и в сторону убывания, приближаясь либо к количественному максимуму, либо количественному минимуму. Добавление веток в сторону убывания происходит по порядку приближения к нулю, предел приведёт к самой ветке нуля. Точно так же как нет «соседних» чисел — предел приближения ведёт к самому числу — нет и «соседних» веток. Это иллюстрация, почему счётная и несчётная бесконечности различаются принципиально — это разные стороны предела приближения к такому месту, которого нет. Просто нет.
Вообще без нуля
Рациональное число кодируется ограниченной последовательностью бинарного выбора. Но теперь выбор можно определять и в обратную сторону. И теперь из двух рациональных чисел можно составить двойное число, в котором выбор от нуля происходит как вперёд, так и назад. В точке начала отсчёта будут соединены две последовательности.
Чтобы это число было не просто парой рациональных чисел, можно добавить, что точка соединения последовательностей не важна, и бинарный выбор может свободно перетекать из одной последовательности в другую. Рациональное число и его обращение, с обратным порядком выбора — объединяются в одно число, и становятся как две крайности в вариантах перетекания.
Для многих иррациональных чисел бинарный выбор повторяется циклически, такие числа тоже можно соединить со своим обращением. Тогда из-за неважности положения точки соединения в одно двойное число будет объединено сразу несколько чисел, количество которых равно размеру цикла выбора. Из-за этого объединения количество двойных чисел может казаться меньшим, чем пар одинарных.
Числа с неограниченным и не циклическим выбором тоже можно было бы представить как двойное число, но в одном таком двойном числе будет объединено неограниченное количество одинарных чисел, так что возникнет вопрос — в случае такого иррационального расширения не сильно ли двойных чисел будет меньше, чем пар из одинарных? Впрочем, какая разница.
Сравнивать на больше/меньше двойные числа можно только приведя начальную точку выбора к нулю, так как только выбор вперёд определяет увеличение или уменьшение числа, выбор назад не может определять направление различия. Неограниченные двойные числа нельзя привести к начальной точке отсчёта, поэтому их и нельзя сравнить на больше/меньше. Ну и ладно.
В целом получилось, что число задаётся двумя точками на двойном бинарном дереве. При этом важно только различие положений. При возможности выбора на бесконечном удалении получившиеся числа будет невозможно сравнить. Даже выяснить факт равенства двух таких чисел и то задача в общем случае неразрешимая. Стоп, приехали.
Троллинг, когда две бинарные бесконечные последовательности надо сравнить, не указывая точного соответствия позиций — достаточно тонкий. И выяснение факта конечного значения для разницы позиций это очень хорошее начало для определяющего эту идентификацию сравнения всей этой бесконечности вариантов выбора.
Пожалуй, лучше вернуть ноль на место начала отсчёта.
Часть вторая
Двойные функции
Определим третью двойную функцию
Все три функции потом будем использовать как идентификаторы для точек
Взаимосвязь координат в обращённом виде
Из
Преобразование можно повторять по нескольку раз. Если первый шаг преобразования координат будет
![](https://habrastorage.org/webt/pz/dt/ml/pzdtmlh8omirfjlsl4mtvwtef5o.png)
Из связи между этими двумя типами преобразования можно вывести равенство
![](https://habrastorage.org/webt/qo/wv/p9/qowvp97bzd4_uw8woo242wfwr2c.png)
Различие направления и скорости приводит к произведению двух косинусов.
Двойные числа
Пока что была определена только взаимосвязь
Функцию
Можно продолжить и добавить свойство функции
Вычисляется степень как логарифм по выбранному основанию.
Комплексное число — это такое число, у которого степень числа характеризуется наряду с обыкновенной степенью, ещё и поворотом. А так как поворот периодичен, то поворотная часть степени позволят задавать одно число несколькими значениями степени, произвольная часть здесь обозначена
Сравнение чисел на больше/меньше всегда говорит о действительных числах, так как направление различия комплексных чисел не ограничивается одним только знаком.
На число
Но можно сделать
Все эти единицы — значение производной соответствующего порядка. Любую функцию можно раскладывать на значения производных в нуле, а потом собирать обратно. Разложения двух функций,
![](https://habrastorage.org/webt/rn/l8/vv/rnl8vvnluma8tu_7iyhgkqpwxcg.png)
Разложение на коэффициенты сбора производных как будто показывают внутренности функций.
Обмен между аргументом и значением для функции
![](https://habrastorage.org/webt/c4/sc/xh/c4scxh2oesift9qera_nqm21g7e.png)
Развёртку дроби
![](https://habrastorage.org/webt/um/fy/oi/umfyoiyu5nr7qi2oykemkkpvqbk.png)
Если дроби не разворачивать в суммы, выражение симметрии остаётся верным
Вот бы, наоборот, обе сходились. Центр любой окружности, которую образует в комплексном пространстве последовательность суммирования, лежит на линии
Причём, даже если сумма является циклической и условно показывает где центр этого цикла, важно выделять из всего цикла первый шаг. Центр указывается относительно начала именно первого шага. Иначе всё циклическое приводило бы в сумме к нулю.
Если использовать развёртку
Биномиальная свёртка
Функция
По этому признаку и получается их вывести:
Доказать, что числа Бернулли с нечётным индексом, кроме первого, равны нулю можно так:
Если к аргументу добавить как множитель мнимую единицу,
![](https://habrastorage.org/webt/eu/r-/cg/eur-cgdgdfykawf0hiuxwovozzu.png)
На этой иллюстрации видно, что для того чтобы получить функцию на третьей строке можно перемножить не только те функции, которые расположены выше, но и те, которые расположены ниже, только таких будет неограниченное количество.
Наверное, доказать, что
Происхождение чисел Бернулли
Одно из применений чисел Бернулли — суммирование степеней натуральных чисел.
Начнём с бинома Ньютона:
Якоб Бернулли получил названные в честь него числа проанализировав закономерности сумм степеней натуральных чисел, суммы прямо выражаются через эти числа.
Представим суммы
Разложение произведения функций это свёртка их разложений. Получается, суммы это свёртка с биномиальными коэффициентами, числами Бернулли и степенью числа, до которого считаем:
По сравнению с интегралом
Откатная функция
Посмотрев на функцию, у которой ряд производных состоит из коэффициентов Бернулли — как она сходится к нулю, и как это обратно отражается на коэффициенты, можно заинтересоваться, как вообще устроена сходимость.
У любой функции, стремящейся к нулю, увеличение аргумента на шаг вперёд уменьшает функцию, и значит, шаг назад увеличивает. Можно задать свойство, что при уменьшении аргумента на единицу значение увеличивается на изначальный аргумент.
![](https://habrastorage.org/webt/kw/yz/4g/kwyz4gfr62cu4uvp_gx_i1ujq_m.png)
Для целых положительных аргументов откат соберёт в одно произведение все промежуточные значения
Одна такая функция, которая из кратных аргументов имела единичное значение только в нуле, у нас уже была, это
Хорошо, что есть более точное определение:
Так как факториал может быть представлен через гамма-функцию,
А в прямой форме интеграл может, наоборот, не давать сойтись к нулю:
![](https://habrastorage.org/webt/vi/s-/tm/vis-tmatzspojfxxosmn9wpbu3u.png)
Расширяя простую закономерность
Произведение чисел от одного до
Перенесём факториал влево, как общий множитель.
Для лёгкости чтения обозначим суммы степеней как функцию
При независимых параметрах сумма произведения это произведение сумм. Получается, двойная сумма это просто квадрат суммы. Так что можно записать:
Это даёт повод предполагать, что при некоторых условиях у предельных форм расходящихся сумм могут существовать определённые значения.
В этих условиях произведение
Пи
Если выразить число
Получилось три выражения
Число
Функция состоит не только из нулей
Если перемножить
Для того чтобы перейти от
Суммируя
Для того чтобы узнать значения для предельных форм расходящихся сумм есть один интересный трюк. Сумма делится на чётные и нечётные слагаемые, образуя как бы две суммы. Затем у суммы составленной из нечётных слагаемых меняется знак.
Таким образом можно получить условное значение бесконечной суммы из степеней натуральных чисел, для всех отрицательных степеней, за исключением
Значение равно второму числу Бернулли (с индексом один). Случайное совпадение? Нет, конечно. Все остальные числа Бернулли тоже отражены в функции.
Зато, все равные нулю числа Бернулли прямо определяют соответствующие нули у Дзета-функции.
Со стороны положительных чисел значение тоже отражает числа Бернулли. Но отражает только не бывающие нулями чётные числа, и чередование знаков чисел скомпенсировано.
![](https://habrastorage.org/webt/7g/dc/rx/7gdcrxfknmiew5wodn9ladpt-28.png)
При сравнении двух формул, кроме разного обращения со знаками, разных сомножителей, разного участия значений с нечётными индексами, выявляется ещё одна разница: одна формула за ось берёт единицу, другая формула за ось берёт ноль. Причём, отсчёты идут навстречу друг другу — от нуля в большую сторону, а от единицы в меньшую. Тема противостояния нуля и единицы, поднятая в самом начале статьи, продолжает раскрываться.
Обе точки, ноль и единица, получается, особенные. Область определения функции как бы делится на три части, аргумент с отрицательной реальной частью, реальная часть между нулём и единицей, и реальная часть аргумента больше единицы. Можно сказать, что у функции сразу две оси.
Если бы у
Они не могут располагаться в области
В области отрицательной реальной части аргумента можно попробовать компенсировать существующие нули и посмотреть, что останется. Так что, поделим
Умножая
Сумму из ряда обратных степеней натуральных чисел можно шаг за шагом переложить в произведение с участием простых чисел
Причём, в формула Валлиса частный случай определения
Интересный, кстати, вопрос: что точнее,
Симметрия Дзеты
Здесь позволю себе брать формулы напрямую из статьи Римана. Подобно тому как откатная функция имеет определение через интеграл, Дзета-функция Римана тоже такое имеет, и очень похожее.
А дальше Риман обобщает, выводит
Спустя буквально один абзац объяснений про то как интегрировать при отрицательном аргументе у него появляется запись
В следующей строчке своей статьи (в моём пересказе) Риман замечает: отсюда со всей очевидностью следует, что
В области
Ось
Для получения значений на полосе достаточно простого суммирования
Отдельно фаза этого перемещения:
![](https://habrastorage.org/webt/nv/mn/vo/nvmnvo6hsfthhabscx4sxl4o6qc.png)
У симметричной формы у расположенных на оси значений нет мнимой составляющей. Мы можем из коэффициента для получения симметричной формы взять только фазу, компенсировать фазу у Дзета-функции, и всё: никакого вращения, только колебания вверх-вниз.
![](https://habrastorage.org/webt/rl/ow/hk/rlowhkin-dzzv_tbjrnszs5wyp4.png)
Так что, эта мания — это стремление вернуться на другую сторону модуля при том что фаза переключается примерно с той же скоростью, только равномернее. Я бы поделил все нули на чередующиеся «восходящие» и «нисходящие». Тогда у функции стало бы три типа нулей.
Откуда там вообще нули?
Если выразить Дзета-функцию через интеграл с выделением оси, то получится
Поделив на два диапазона
![](https://habrastorage.org/webt/ix/6j/sg/ix6jsgfrlez8qnnsa-gcwoahgve.png)
Почему бы теперь начало диапазона снова не сделать нулём, ввернув вместо
Визуальное сравнение коэффициентов:
![](https://habrastorage.org/webt/ml/ol/ma/mlolma2ofyms8npjqddf2a7iufw.png)
После нормировки:
![](https://habrastorage.org/webt/zr/2h/t8/zr2ht8tozzyqzbv3z9bj2udcnwq.png)
Один множитель с возрастанием
Интегралы с колебательным множителем аналогичны преобразованию Фурье. А в преобразовании Фурье, как было замечено в статье про волны, если проигнорировать расхождение интеграла, переполнение одной комплексной составляющей может влиять на другую комплексную составляющую. Здесь, видимо, хорошее такое переполнение — влияние идёт на саму же составляющую в обратную сторону.
После упрощения
При интегрировании множитель, вносящий колебания в каждое слагаемое, циклически сворачивает значения: нечётный полупериод такого цикла уменьшает величину, выросшую на чётном полупериоде. Только, как в нормальной троллинг-формуле, один из двух интегралов даже не смотря на это не сходится. Или сходится, но к каким-то непредсказуемым величинам.
Оба интеграла можно объединить в один
Давайте посмотрим на эту функцию.
![](https://habrastorage.org/webt/fk/vv/1w/fkvv1wxqovhfps81c7zxcenx72s.png)
— Функция, которая раскладывается на частоты. Результат деления
А так сразу и не скажешь, что у этого бугорка выпадают частоты.
После небольшого обобщения получится, что когда в
Логарифм бугорка в комплексном пространстве выглядит так:
![](https://habrastorage.org/webt/7u/he/oc/7uheocm9uoxevxr0kwepkupvqni.png)
![](https://habrastorage.org/webt/ja/i7/iv/jai7ivk4wyt8neapbmusxnopqky.png)
Причём, он периодичен по мнимой составляющей аргумента. У модуля
Похоже на шнуровку ботинка:
![](https://habrastorage.org/webt/y_/wu/zn/y_wuzn-fnlalrkwtbwn7kn6sbcs.png)
Светлые точки соответствуют нулевому знаменателю первого слагаемого.
Числа скучные — статья развлекательная. Вместо рекламы здесь указание на существование возможности доната.
Комментарии (32)
GospodinKolhoznik
24.09.2021 22:15+14Основательно!
Вы не думали разбить статью на части и выкладывать по порциям? За раз такое не осилить, а если разбить на 5-6 кусков, то больше людей прочтут и проникнутся.
yurixi Автор
24.09.2021 22:27+9Я думал о разбиении, но как-то не решился. Надо было тогда решать с каким промежутком публиковать, а если промежутка времени нет, то была бы такая кучка статей. Да в общем, мне показалось одну статью держать в закладках и возвращаться к чтению удобно. Я предполагаю, это статья на выходные.
GospodinKolhoznik
24.09.2021 23:51+5В любом случае спасибо за статью. Может чтобы прочесть её пару дней и хватить, но чтобы как следует обдумать и осознать прочитанное и пару жизней маловато!
bus_pro
26.09.2021 15:44Согласен, осилил одну треть пока. Разделить на серию постов хорошая идея. И не плохо было бы хоть каплю про применение, потому как лишь немногие в курсе для чего это всё.
vvadzim
24.09.2021 23:00При освоении программирования встречается один смешной спор, начинать адресацию элементов в массиве с единицы или с нуля
В варшаве номера этажей в лифте начитаются с 0. И ничего, выживают как-то))
titsi
25.09.2021 08:45В варшаве номера этажей в лифте начитаются с 0. И ничего, выживают как-то))
Не только у них так.
Французы смотрят на дом иначе. Первое, что они видят – это «нулевой этаж» (un rez-de-chaussée); и только после него начинают отсчёт. Так, количество уровней в доме превышает количество этажей.
Запоминаем, русские называют на один этаж больше; французы на один этаж меньше.
Так, «двухэтажный дом» по-французски становится «одноэтажным» («нулевой этаж» rez-de-chaussée + «один этаж» un étage).
Русских часто ставит в тупик французское выражение une maison sans étage «дом без этажей» (у нас ведь не бывает домов без этажей!). Но понимая французскую систему отсчёта, всё проясняется – это одноэтажный дом, то есть дом, в котором есть только нулевой этаж.unsignedchar
25.09.2021 09:32Дом без этажей - просто переменная.
Дом с этажами - массив.
Массив из одного элемента возможен, но не особо осмыслен.
Французы понимают толк ;)
RedWolf
25.09.2021 11:18+2На украинском этаж - поверх. По-моему в старорусском было так же. В контексте этого слова все встает на месте: второй этаж - первый поверх. А первый - вообще не этаж.
egor_nullptr
24.09.2021 23:12+2Всегда был уверен, что не только я принимаю по пятым дням недели. С пятницей, коллега ????!
dmarsentev
25.09.2021 03:59"Самое интересное, что такой фрактал очень хорошо кодируется, каждый элемент обозначается двумя кодами, взятыми из прямого счёта. Для того чтобы закодировать текущее число, нужно сложить коды границ — для первого кода сложить первые, для второго сложить вторые. А коды для первоначальных границ это 0/1 и 1/0."
Начиная с этого момента перестал понимать.
Хотелось бы примеры вычисления вершин хотя бы...
yurixi Автор
25.09.2021 07:17Если нужно получить число между a/b и x/y, это будет (a+x)/(b+y).
Для границ 2/3 и 1/2 получится 3/5.Timoffey
25.09.2021 12:23Я тоже там перестал понимать. У нас же бинарное дерево. Получается, что у каждой точки два числа. Первое находится по вашей формуле. А второе?
yurixi Автор
25.09.2021 15:00+3Сначала есть числа 0/1 и 1/0, найти между ними можно только одно, (0+1)/(1+0)=1/1. Это ещё не выбор. А после этого у нас на выбор от 1/1 получать число в меньшей стороне, между 0/1 и 1/1 и в большей стороне, между 1/1 и 1/0. Пусть будет в большую сторону. (1+1)/(1+0)=2/1. После этого два диапазона на выбор: между 1/1 и 2/1 и между 2/1 и 1/0. И так далее, всегда два варианта на выбор.
eugenk
25.09.2021 04:26+5Класс !!! Бегло просмотрел, утащил в закладки ! Люблю такие вещи, где изложение начинается с совершенно элементарных, детских вещей, и приводит к весьма нетривиальным конструкциям !
fireSparrow
25.09.2021 09:59+1Подскажите — а схемы вы рисовали каким-то общедоступным инструментом, или своим кодом?
sci_nov
25.09.2021 12:51-14Здравствуйте!
математика + программирование + радиотехника + еще что-то = данная публикация
Вам бы что-то более практичное писать и публиковать, но для этого требуется умение находить ту самую золотую середину
А так это, фактически, студенческий уровень (из-за перекоса в идеальность)
Успехов в творчестве!
third112
25.09.2021 18:31"ноль или единица?"
Когда в сетке нахожу алгоритм со словами: возьмем матрицу m x n, то обычно первый элемент матрицы это (1,1).
speshuric
26.09.2021 16:22У любой функции, стремящейся к нулю, увеличение аргумента на шаг вперёд уменьшает функцию, и значит, шаг назад увеличивает.
Формально это очень спорное утверждение.
Надо либо "шаг вперёд" аккуратно формулировать, либо фиксировать монотонность функции.
Формально для того чтобы шаг назад уменьшал, надо, чтобы а) он был определён, б) функция должна быть монотонной всюду.
То есть интуитивно понятно, что имелось в виду, но формально нужна куча уточнений.
yurixi Автор
26.09.2021 18:51Да, здесь в одном предложении подразумевается сразу несколько предположений.
И правильно, что вы обратили внимание на недосказанность. Но это предложение — предисловие к использованию понятия «отката» — как возврата, который может быть после выполнения ещё и продолжен. Представляете, сколько нужно рассказать, чтобы его формализовать? Да и то, некоторым проще будет «развернуться». В общем, достаточно неформальное понятие, но полезное.
askv
26.09.2021 19:04Структура чем-то напоминает сюрреальные числа. Но сюрреальных чисел, конечно, сильно больше :)
yurixi Автор
26.09.2021 19:50В сюрреальных числах предел приближения условный, так как не приводит к самому числу, а только добавляет пространства для вариантов. Так что, это просто добавление условностей, на мой взгляд слабо обоснованное. И объем больше тоже достаточно условно.
dmytrob
27.09.2021 04:29Ноль не всегда идёт перед единицей. В летоисчислении всё начинается с единицы: 2 год н. э. минус 2 = 1 год до н. э. То есть:
2 – 2 = –1
Это часто приводит к забавным ситуациям, особенно, если речь идёт о стыке эпох или о разных календарях.
spooky
27.09.2021 12:00Так с нуля же не потому что это место, а смещение от начала массива.
Соответственно первый имеет смещение 0.
Refridgerator
27.09.2021 18:34Любую функцию можно раскладывать на значения производных в нуле, а потом собирать обратно
Но это же неправда — не любую. Навскидку: e(-1/x2), все производные которой (и значение тоже) в точке 0 равны 0. Ещё пример — функция Вейерштрасса не имеет производных вообще ни в какой точке.yurixi Автор
27.09.2021 19:11Это вполне ясно: даже просто порезать функцию на куски и части переставить — и уже производная в нуле любой степени не будет иметь никакого отношения к переставленным кускам. Но раскладывать и собирать можно действительно любую функцию, а вот чтобы остаток разложения играл всё меньшую роль надо чтобы она была аналитической.
Refridgerator
28.09.2021 03:48Остаток разложения имеет смысл, когда разложение в степенной ряд используется для аппроксимации функции конечным многочленом. Если же рассматривать ряд как дискретную последовательность (например натуральных чисел), то остаточный член в ней не фигурирует и неважно, сходится ряд или нет.
yurixi Автор
28.09.2021 05:08Думаю, мы бы сошлись на том, что на числа разложить можно не «любую», а только аналитическую функцию. Остальные можно разложить только на ограниченное количество членов, и последний будет функцией.
Refridgerator
28.09.2021 07:22Так аналитическая функция и определяется через совпадение со своим рядом Тейлора в окрестности произвольной точки. Вполне логично, что если функция раскладывается в ряд Тейлора — то её можно разложить в ряд Тейлора. И насколько я понимаю, просто посмотрев на функцию непросто определить, является она аналитической или нет. В частности, если в примере выше заменить экспоненту на арктангенс — то она прекрасно разложится.
kunix
Монументально!