От золотого сечения до троичности Брусенцова: одно семейство числовых форматов от 2 до 1024 бит — и что я в нём реально измерил
Памяти Николая Петровича Брусенцова (7 февраля 1925 — 4 декабря 2014).
Эту статью я посвящаю памяти человека, который поверил в троичность тогда, когда весь мир уже выбрал двойку. Главный конструктор «Сетуни» — первой в мире электронной троичной ЭВМ, участник Великой Отечественной войны (радист-разведчик с 1943 года), кандидат технических наук, он с 1953 по 2014 год работал в МГУ и до последних дней заведовал лабораторией троичной информатики (ВМК МГУ; Брусенцов, Рувики). В феврале 2025 года ему исполнилось бы 100 лет (ВМК МГУ, к 100-летию).
Он оказался прав: шестьдесят лет спустя троичность вернулась — в весах больших языковых моделей. Этот текст — о том, почему его идея была не ошибкой, а просто опережением времени.
Все мы привыкли, что чисел с плавающей точкой «бывает несколько»: float32, float16, bfloat16, в последние пару лет — FP8 и совсем экзотика вроде MXFP4. Каждый из них — это компромисс между диапазоном и точностью, который кто-то однажды зафиксировал руками: столько-то бит на экспоненту, столько-то на мантиссу.
А что если не выбирать сплит руками, а вывести его из одной математической константы — золотого сечения? Так появился GoldenFloat: семейство форматов, где разбиение «экспонента : мантисса» на каждой ступеньке задаётся одним и тем же законом, привязанным к тождеству φ² + φ⁻² = 3. А на самом нижнем, 2-битном пределе этого семейства неожиданно оказывается старая знакомая — балансная троичность {−, 0, +}, та самая, на которой в 1958 году в МГУ построили легендарную «Сетунь».
Эта статья — про обе вещи сразу и про их связь. Сначала про φ-лестницу форматов и единственное, что в ней измерено end-to-end. Потом про «Сетунь», Брусенцова и красоту балансной троичности. И в конце — про то, как троичность вернулась в эпоху больших языковых моделей (BitNet) и как она садится в φ-семейство как его нижняя ступень. Честно, со всеми статус-метками: что измерено, что только спецификация, а что вообще не моё изобретение.
Сразу честная рамка, потому что без неё статья превратилась бы в рекламу: end-to-end я проверил пока только один формат семейства — GF16. Всё остальное — это спецификация и, местами, RTL. Оптимальность всего семейства — открытый вопрос.
Препринт по GoldenFloat: arXiv:2606.05017.
Оглавление
Откуда вообще берётся «сплит» в float
Любое двоичное число с плавающей точкой шириной N бит — это три поля: знак S, экспонента E и мантисса M, причём S + E + M = N. Например, классический float16 — это 1+5+10, а bfloat16 — 1+8+7. Разница только в том, сколько бит отдали под диапазон (экспонента), а сколько под точность (мантисса).
Эти сплиты исторически выбирались под задачу. bfloat16 «украл» три бита у мантиссы и отдал их экспоненте, чтобы покрыть тот же диапазон, что и float32 — для обучения нейросетей диапазон оказался важнее точности. То есть никакого «закона» тут нет: есть инженерные решения, каждое со своей историей.
Вопрос, с которого всё началось: а можно ли выбрать сплит не вкусовым решением, а единым правилом, одинаковым для всех ширин — от пары бит до тысячи?
Почему именно золотое сечение

Золотое сечение φ = (1+√5)/2 ≈ 1,618 знаменито своим «самоподобием»: φ² = φ + 1. Из него же преобразуется менее известное, но очень удобное тождество:
φ² + φ⁻² = 3
Это не нумерология и не магия — это элементарно проверяемое равенство (подставьте φ и посчитайте). Именно оно — якорь всей конструкции. В терминах чисел Люка оно записывается как L₂ = 3, а в «железе» превращается в конкретную константу-семя dot4 = 0x47C0, которая зашита в Verilog как 16'h47C0.
Идея сплита: выбирать соотношение числа бит экспоненты к числу бит мантиссы так, чтобы оно стремилось к 1/φ ≈ 0,618. Нормативная формула для ступеньки шириной N выглядит так:
phi = (1 + 5 ** 0.5) / 2 # 1.6180339887... e = round((N - 1) / phi**2) # бит экспоненты m = N - 1 - e # бит мантиссы bias = 2 ** (e - 1) - 1 # смещение экспоненты
Здесь N-1 — это все биты, кроме знакового. Один и тот же код порождает весь «лестничный» ряд форматов, не подбирая ничего руками.
Один закон на всю лестницу форматов

Если прогнать формулу по ширинам, получается семейство, которое я называю лестницей GF. Вот несколько характерных ступенек и то, насколько их сплит близок к идеальному 1/φ:
Формат |
Сплит (S+E+M) |
Бит |
E/M |
Близость к 1/φ |
Статус |
|---|---|---|---|---|---|
GF4 |
1+1+2 |
4 |
0,500 |
0,118 |
спека + RTL |
GF8 |
1+3+4 |
8 |
0,750 |
0,132 |
спека + RTL |
GF16 |
1+6+9 |
16 |
0,667 |
0,049 |
проверен e2e |
GF32 |
1+12+19 |
32 |
0,632 |
0,014 |
спека + RTL |
GF64 |
1+24+39 |
64 |
0,615 |
0,003 |
спека + RTL |
GF256 |
1+97+158 |
256 |
0,614 |
0,004 |
спека + RTL |
GF1024 |
1+391+632 |
1024 |
0,619 |
0,0006 |
только спека |
Что тут важно и честно отметить: «близость к 1/φ» — это не показатель качества формата на реальных данных. Это просто метрика того, насколько аккуратно сплит лёг на целочисленную сетку бит. Чем шире формат, тем плотнее сетка и тем точнее можно попасть в идеал — поэтому у GF1024 близость лучшая, но это совершенно не значит, что GF1024 где-то «лучше всех». Это значит ровно одно: правило применимо на всём диапазоне ширин.
Аккуратная формулировка, которую я готов защищать (и она помечена как открытая гипотеза, а не доказанный факт):
Мне не известно другое опубликованное семейство float-форматов, у которого сплит E:M по всей лестнице от 2 до 256 бит порождался бы одним замкнутым правилом.
Это утверждение про методологию, а не про производительность. И формулировка именно «мне не известно», а не «единственное в мире» — потому что доказать отсутствие чего-либо нельзя.
Lucas-точные аккумуляторы: где φ ведёт себя как целое
Есть один по-настоящему приятный бонус золотого якоря. Степени φ²ⁿ + φ⁻²ⁿ — это всегда целые числа (это числа Люка с чётным индексом). То есть когда вы накапливаете суммы определённого вида, результат можно держать в точной целочисленной арифметике, без накопления ошибки округления.
Это свойство я проверил формально: целочисленный аккумулятор Lucas-EII прогнан для n = 1 … 256 с точностью 500 знаков и доказан в Coq. Для обычного float такое «бесплатное» отсутствие дрейфа округления — редкость, и именно тут золотое сечение даёт не эстетику, а инженерную пользу.
Что измерено на GF16 (и почему именно он)

GF16 — единственная ступенька, доведённая до конца: Rust-референс, Verilog-реализация и тестбенч на FPGA Artix-7, 35 из 35 тестов проходят, рабочая частота 323 МГц. Это «замороженный» якорь семейства — именно его сплит 1+6+9 служит эталоном, к которому привязана нормативная формула.
Теперь измерения. В сравнении на обучении байтового языкового моделирования (метрика val_bpb, меньше — лучше) картина такая:
Формат |
val_bpb |
Честное чтение |
|---|---|---|
float32 |
2,5414 |
полноточностный базлайн |
float16 |
2,5501 |
лучший 16-битный в этом прогоне |
GF16 |
2,5725 |
+0,031 к f32; обходит bfloat16 |
bfloat16 |
2,6135 |
худший из 16-битной тройки |
Что это значит на человеческом языке: GF16 играет в одной лиге с float16 и измеримо обходит bfloat16 на этой задаче. Но float16 его всё-таки слегка опережает. Это ограниченный эмпирический результат на одной задаче, а не «GF16 лучше всех».
И сразу честная рамка, чтобы никто не принял это за больше, чем оно есть. End-to-end измерен пока только GF16; остальные ступени — это спецификация и, где-то, RTL, без бенчмарков. Красивый сплит из 1/φ не означает оптимальности — известна работа Daubechies et al. (Golden Ratio Encoder), где φ не единственное «хорошее» основание; реальный плюс скромнее — «безмультипликаторность» (из φ² = φ + 1 множитель усиления схлопывается в единицу). Сопутствующий чип-каталог Corona — submission-ready дизайн (RTL + GDS + формальные доказательства + cocotb), проверенный в симуляции, а не изготовленный кристалл: проверено формально и в sim, кремний — впереди. Всё это я держу под явными статус-метками (Verified / Empirical fit / Open conjecture).
А теперь — самая красивая часть. У этой φ-лестницы есть не только верх (GF1024), но и низ. И на самом низу, на 2-битном пределе, обнаруживается то, что построили в железе ещё 68 лет назад.
Сетунь: машина, которой не дали жить
В 1958 году в вычислительном центре МГУ собрали машину, которая по меркам тогдашней (и сегодняшней) индустрии была еретической: она считала не в двоичном коде, а в троичном. Машина называлась «Сетунь», её главным конструктором был Николай Петрович Брусенцов, а идейным вдохновителем — академик С. Л. Соболев. Это была первая в мире электронная троичная ЭВМ — и, как часто бывает с красивыми идеями, она же оказалась почти единственной.

История начинается в начале 1956 года, когда в МГУ под началом Соболева взялись за создание небольшой ЭВМ — простой в освоении, надёжной и дешёвой. Год ушёл на изучение существующих машин, и по итогам команда приняла нестандартное решение: строить не на двоичном, а на троичном коде (Брусенцов, Рамиль Альварес, SoRuCom 2006).
К концу 1958 года «Сетунь» была собрана и начала работать; к концу 1959-го готова система программирования, а к апрелю 1960-го машина прошла межведомственные испытания (там же). Несколько сухих, но красноречивых цифр из той же статьи Брусенцова:
всего 24 одноадресные команды — минималистичный набор;
оперативная память — 162 девятитритные ячейки (3 страницы по 54);
регистры на 18 и 9 тритов, индексный регистр на 5 тритов;
около 2 тысяч элементов в машине, цена элемента — 3 рубля 50 копеек;
продавалась всего за 27 500 рублей.
И — что особенно впечатляет — надёжность. За первый год эксплуатации заменили всего три дефектных элемента; экспериментальный образец в вычислительном центре МГУ проработал «в абсолютно рабочем состоянии семнадцать лет непрерывной работы» (там же). Серийные машины работали в климате «от Одессы и Ашхабада до Якутска и Красноярска».
Серийное производство шло на Казанском заводе математических машин по решению Совета Министров СССР. Но, по словам Брусенцова, чиновникам из профильного ведомства троичная машина «по неизвестным причинам не понравилась», и к 1965 году производство остановили (там же). Между 1967 и 1969 годами появился преемник — «Сетунь 70» с двухстековой архитектурой, работавшая трайтами по 6 тритов и поддерживавшая идеи структурного программирования Дейкстры. Но широкой серии уже не случилось.
Что такое балансная троичность и почему она красива
Двоичный бит хранит одно из двух значений: 0 или 1. Трит хранит одно из трёх. Но «Сетунь» использовала не «несимметричную» троичность с цифрами {0, 1, 2}, а балансную (симметричную) — с цифрами {−1, 0, +1} (часто записывают как −, 0, +).
Число записывается так же позиционно, как и обычно, только вес i-й позиции равен 3ⁱ, а цифры берутся из {−1, 0, +1}. Например (значения из статьи Брусенцова): десятичное 13 — это + + +, 7 — это + − +, 6 — это + − 0, а −6 — это − + 0 (Брусенцов, SoRuCom 2006).
У балансной троичности есть несколько свойств, которые ценили и Брусенцов, и до него — Клод Шеннон (отметивший преимущества системы ещё в 1950 году), и позже Дональд Кнут, назвавший её «возможно, изящнейшей» системой счисления (Брусенцов, SoRuCom 2006; Ternary computer, Wikipedia):
Знак — это просто старший ненулевой трит. Отдельный «знаковый бит» не нужен, знак числа определяется естественно.
Смена знака — инверсия разрядов. Каждый
+становится−и наоборот. Никакого дополнительного кода, как в двоичном.Округление — это просто отбрасывание младших разрядов (оно же оптимальное округление к ближайшему).
Единая операция сдвига и единообразное кодирование чисел.
Есть и теоретико-информационный аргумент, который любят повторять: самым «экономным» по плотности хранения было бы основание e ≈ 2,718; из целых оснований к нему ближе всего тройка, а не двойка (Исследование элементов троичной логики, Молодой учёный). То есть троичность — не каприз, а попытка попасть в математически выгодную точку.
Важная честная оговорка: «экономнее по основанию» не значит «быстрее и дешевле в кремнии прямо сейчас». Реальный мир выбрал двойку по совокупности инженерных и экономических причин — об этом дальше.
Упущенный шанс: почему победил двоичный код
Если троичность так красива, почему мир считает в нулях и единицах? Коротко — не из-за математики, а из-за инженерии и инерции экосистемы:
Двоичная элементная база (транзистор как переключатель «вкл/выкл») оказалась проще, дешевле и быстрее в массовом производстве. Стабильно различать два уровня напряжения легче, чем три.
Вокруг двойки выросла вся экосистема: память, логика, стандарты, компиляторы, целые поколения инженеров.
«Сетунь», при всех её достоинствах, не получила административной поддержки — и красивая ветка эволюции просто заглохла.
Это классическая история про то, как «достаточно хорошее и повсеместное» побеждает «изящное, но одинокое». Троичность не была неправильной — она была несвоевременной.
Возвращение троичности: BitNet и веса в LLM

А теперь — поворот. В эпоху огромных языковых моделей главным дефицитом стали память и энергия: веса моделей измеряются миллиардами чисел, и хранить каждое в 16 или 32 битах дорого. Возникла волна квантизации — представлять веса всё более грубо, лишь бы модель не разваливалась.
И на пределе этой волны индустрия пришла ровно к троичности. Модели семейства BitNet (Microsoft Research) используют веса, принимающие фактически три значения — {−1, 0, +1} — что даёт знаменитые «1,58 бита на вес» (log₂ 3 ≈ 1,585). Это ровно балансная троичность Брусенцова, только теперь она живёт не в ферритовых сердечниках «Сетуни», а в матрицах весов нейросети.
Смысл тот же, что шестьдесят лет назад: три состояния {−, 0, +} оказываются удачным компромиссом. Ноль позволяет «выключить» связь (разреженность), а ±1 несут знак без отдельного бита. Умножение на такой вес — это вообще не умножение, а выбор «прибавить / ничего / вычесть». Брусенцов бы оценил.
Нижняя ступень: GFTernary и TF3 (честно)
Теперь — обещанная связь между φ-лестницей и троичностью. Если у GoldenFloat есть верх (GF1024), то у него есть и самый низ — 2-битный предел. И этот предел — троичный. Но здесь я обязан быть предельно честным насчёт статуса.
В каталоге есть два разных троичных объекта, которые легко спутать:
GFTernary — 2-битный формат, значения которого буквально
{−φ, 0, +φ}(где φ — золотое сечение). По сути это балансная троичность Брусенцова, у которой ненулевая величина равна не единице, а φ. Это и есть нижняя ступень φ-семейства: тот же закон, доведённый до двух бит. Статус: спецификация + референс-реализация на Rust и Zig. Это не серийный чип.TF3 — 8-битный контейнер для хранения троичных весов нейросети (геометрия
1+3+4, как у GF8) с метаданными. Это именно контейнер хранения, а не 2-битный формат. Статус: только спецификация.
И ещё одна честная деталь про «железо». В сопутствующем чипе-каталоге Corona есть декодер формата bitnet — то есть троичные представления учтены на уровне дизайна. Но Corona — это submission-ready дизайн (RTL + GDS + формальные доказательства + cocotb-тесты), проверенный в симуляции и формально. Изготовленного и протестированного на столе кристалла нет. Поэтому никаких «доказано на кремнии» — корректная формулировка: проверено в симуляции и формально, кремний впереди.
Чего я НЕ утверждаю, и это важно:
Я не изобретал троичную логику — это Брусенцов и «Сетунь», а в современном виде — BitNet от Microsoft Research. Мой вклад скромнее: троичность естественно ложится в φ-семейство как его 2-битный предел, с ненулевой величиной φ вместо единицы.
В моих измерениях end-to-end проверен пока только 16-битный GF16 (см. таблицу выше). Троичные ступеньки семейства — это спецификация, а не измеренный результат.
То есть связь честная и неслучайная: одна и та же идея — «три состояния {−, 0, +}» — проходит через «Сетунь», через BitNet и через 2-битный предел моего φ-семейства. Но превращать это в громкие заявления я не буду; статус каждого кирпичика указан явно.
Как это потрогать руками
Препринт со всеми деталями и таблицами лежит на arXiv:2606.05017. Нормативная формула сплита приведена выше — её достаточно, чтобы воспроизвести всю лестницу форматов в десяток строк на любом языке. Соседние форматы (FP8, bf16, posit, takum и другие) я держу в открытом каталоге как союзников и контрпримеры, а не как «поверженных конкурентов» — в частности, takum (Hunhold, 2024) специально лежит рядом как честный контрпример к гипотезе о «широте как преимуществе».
Выводы
Сплит «экспонента : мантисса» можно не подбирать руками, а вывести из одного закона — стремления E/M к 1/φ, с якорем φ² + φ⁻² = 3. Получается единое семейство форматов на всём диапазоне ширин.
Золотой якорь даёт реальный инженерный бонус — Lucas-точные целочисленные аккумуляторы без дрейфа округления (проверено в Coq).
Из всего семейства end-to-end проверен только GF16: паритет с float16, измеримо лучше bfloat16 — но это один результат на одной задаче, не универсальная победа.
Внизу той же лестницы лежит троичность. «Сетунь» (1958, МГУ, Брусенцов) — первая в мире электронная троичная ЭВМ: 24 команды, ~2000 элементов, поразительная надёжность — и закрытая к 1965 году не по техническим причинам.
Балансная троичность
{−1, 0, +1}математически изящна (знак — старший разряд, смена знака — инверсия, округление — отбрасывание младших). Победил двоичный код — из-за простоты элементной базы и экосистемы, а не из-за «неправильности» троичности.В эпоху LLM троичность вернулась: BitNet b1.58 (Microsoft Research) — по сути та же балансная троичность Брусенцова в весах нейросети.
В моём φ-семействе троичность присутствует как GFTernary (
{−φ, 0, +φ}, спека + Rust/Zig) и TF3 (контейнер, только спека); Corona — дизайн в симуляции, не чип. Никаких «доказано на кремнии».
Если интересно, в следующий раз могу подробно разобрать Lucas-точные аккумуляторы — с кодом и тем, как именно целочисленность φ²ⁿ + φ⁻²ⁿ убирает накопление ошибки, — и чем умножение на троичный вес дешевле обычного.
Открыт к сотрудничеству с AI-лабораториями и командами
Если вы из AI-лаборатории, чип-вендора или ML-команды и вам интересно попробовать GoldenFloat (в первую очередь проверенный GF16, а также лестницу форматов, Lucas-точные аккумуляторы и троичную нижнюю ступень в духе BitNet) на своих задачах — напишите мне. Я открыт к совместной работе в любом из форматов:
прогнать GF16 на вашем железе или в вашем training/inference-стеке и честно сравнить с float16 / bfloat16 / FP8 на ваших данных;
честно сравнить троичные/низкоразрядные представления (BitNet-веса, GFTernary как 2-битный предел) на ваших задачах;
помочь с интеграцией форматов в ваши кернелы и инструментарий (есть Rust-референс, Verilog/FPGA-реализация и открытый каталог совместимости с бит-точными конформанс-векторами и Corona-дизайн как оракул);
совместно довести до измерений те ступеньки лестницы, которые пока существуют только как спецификация;
спонсируемое исследование или совместный технический отчёт.
Честная рамка остаётся прежней: я не обещаю «формат лучше всех». Я предлагаю воспроизводимую методологию и один измеренный результат (GF16), а дальше — смотрим на ваших задачах вместе и публикуем то, что реально получилось, со всеми статус-метками.
Пишите на admin@t27.ai — расскажите, какой у вас стек и какую задачу хотите проверить. Общение асинхронное, на английском или русском.
Об авторе. Dmitrii Vasilev, Trinity S³AI. ORCID 0009-0008-4294-6159. Препринт по GoldenFloat: arXiv:2606.05017. Связь: admin@t27.ai
Комментарии (15)

materiatura
23.06.2026 11:21φ² = φ + 1. Из него же следует менее известное, но очень удобное тождество:
φ² + φ⁻² = 3А как оно следует?
В числах Люка пропущена 4 и 11
Золотое сечение - это деление, отношение. Есть Золотое число связанное с Золотым сечением.
Это все мелочи, отбросим. Основные вопросы - "Каков критерий или критерии "лучшести" такого формата представления чисел?" и собственно, "Какова связь этого "золотого" представления с троичной системой?" Если Вы поделите биты Сверхзолотым сечением (https://ru.wikipedia.org/wiki/Сверхзолотое_сечение) внизу тоже придете к троичной, а еще ниже к двоичной системе.

Medeyko
23.06.2026 11:21φ² + φ⁻² = (φ + 1) + 1 / ( φ + 1 ) = ( (φ + 1)² + 1 ) / ( φ + 1 ) = ( φ² + 2 φ + 1 + 1) / ( φ + 1 ) = ( φ + 1 + 2 φ + 1 + 1 ) / ( φ + 1 ) = (3 φ + 3 ) / ( φ + 1 ) = 3
materiatura
23.06.2026 11:21Да, да, спасибо. Это Вы проверили тождество, меня же зацепило слово "следует", т.е. как из ф2=ф+1 следует ф2 - ф-2=3. Если бы было написано "можно преобразовать в..." то я бы поковырялся, но на "следует" моего математического чутья не хватает. Следует оно так:
Но чем эта форма лучше чем начальная, для меня не понятно.

raoffonom Автор
23.06.2026 11:21Спасибо за внимательный разбор — это ровно те вопросы, ради которых статью и стоило писать.
Про «следует». Вы оба правы, и @Medeyko уже привёл прямой вывод. Соглашусь с замечанием materiatura: аккуратнее говорить «преобразуется», а не «следует как теорема». Самый короткий путь — через Люка: при целом n выполняется Ln=φn+(−φ)−nL_n = \varphi^n + (-\varphi)^{-n}Ln=φn+(−φ)−n, откуда φ2+φ−2=L2=3\varphi^2 + \varphi^{-2} = L_2 = 3φ2+φ−2=L2=3. То есть это просто второй член последовательности Люка, а не отдельное «магическое» тождество. Поправлю формулировку в тексте на «преобразуется к».
Про числа Люка. Тут небольшая неточность: 4 и 11 в последовательности есть — 2, 1, 3, 4, 7, 11, 18, 29… Пропущенными они кажутся, если смотреть на L₀=2, L₁=1 и дальше через одно. Так что L2=3 L_2=3 L2=3 и L4=7 L_4=7 L4=7 на своих местах.
Чем эта форма лучше исходной. Честный ответ: сама по себе φ2+φ−2=3\varphi^2+\varphi^{-2}=3φ2+φ−2=3 ничем не «лучше» — это эстетика. Практическая польза в другом: она даёт одну целочисленную реперную точку. В формате GF16 операция dot4(1,2,3,4) обязана дать значение с битовым отпечатком 0x47C0. Это не «доказательство красоты», а тестовый якорь: одно целое число (3), которое должно бит-в-бит совпасть во всех реализациях — от JSON до RTL на кремнии. Если совпало — линейка не сбита.
Критерий «лучшести» формата. Здесь я намеренно не утверждаю превосходства. В каталоге у φ-семейства нет метрики «лучше всех» — есть деление битов по правилу e=round((N−1)/φ2)e=\mathrm{round}((N-1)/\varphi^2)e=round((N−1)/φ2) и честные статус-метки зрелости. takum-формат Хунхольда (arXiv:2412.20273) я держу в каталоге как контрпример, а не прячу. «Критерий» у меня операционный: воспроизводимость (якорь 0x47C0), наличие RTL и проверка против эталона — а не абстрактная оптимальность.
Про троичную систему и сверхзолотое сечение. Это самое интересное замечание, спасибо. Связь φ с троичной у меня идёт не через деление битов, а через то, что L₂=3 — мост к троичной «Сетунь» (об этом была первая статья). А вы указываете на другой, более глубокий мост: сверхзолотое сечение ψ — корень x3=x2+1x^3=x^2+1x3=x2+1 (нарайяновская рекурсия), и оно естественнее ложится на основание 3, тогда как φ (корень x2=x+1x^2=x+1x2=x+1) — на основание 2. Это честная развилка, которую я в φ-семействе не использовал: оно двоичное по разрядке битов, а «троичность» появляется только на уровне тождества L₂=3, не на уровне кодирования. Ваш намёк на лестницу ψ→3→2 мне нравится — это отдельная ветка, которую стоит проверить, а не выдавать за уже сделанное.

materiatura
23.06.2026 11:21Спасибо за развернутый ответ, это стало редкостью. Не понятно почему кто-то поставил Вам минус. Наверное рука дрогнула, я подправил.))

Zenitchik
23.06.2026 11:21как из ф2=ф+1 следует ф2 - ф-2=3. Если бы было написано "можно преобразовать в..."
Так это ж синонимы. А математическое чутьё тут ни при чём.

materiatura
23.06.2026 11:21Синонимы, - они на то и синонимы, что имеют различия. В моем опыте чтения, "следует" - больше к логическому выводу, логическому следствию. Если же формула преобразуется в другой вид, более удобный в конкретном случае, это точнее описывается фразой типа "можно преобразовать, представить в виде и т.д." в старорежимной литературе это впитывается автоматически.
Вот возьмите представление комплексного числа в показательной форме
если Вам легко увидеть, что из этого следует его геометрическая форма
то я искренне Вами восхищаюсь, я так не могу.

Zenitchik
23.06.2026 11:21В моем опыте чтения, "следует" - больше к логическому выводу, логическому следствию.
Так, а в чём проблема-то? Ну да, не очевидно, что следует, но тем не менее - следует. И это математически доказано.
Легко видеть или не легко видеть - это не относится к отношению следования.

wataru
23.06.2026 11:21Мне не известно другое опубликованное семейство float-форматов, у которого сплит E:M по всей лестнице от 2 до 256 бит порождался бы одним замкнутым правилом.
А как же IEEE 754?! Куда уж опубликованнее?! Распределение бит по мантиссе/экспоненте там по конкретному замкнутому правилу:
exp_width = 4*log2(n)-13
Можете сами посмотреть, странца 23, таблица 3.5 (24-ая в pdf-ке): Standard 754-2019.pdf
Изначальные распределения для 8-16 бит были выбраны руками в прошлом веке в результате экспериментов. Эмперически подобрали баланс между допустимым интервалом чисел и точностью. Но потом, при введении 128 и более битных чисел формулу обобщили.
Далее, почему вы взяли золотое сечение, а не Pi/4, например? Вы никак не аргументировали. Чистая нумерология и магическое мышление и есть.
Тождество дающее 3, конечно, очень красиво, но притянуто за уши:
То есть когда вы накапливаете суммы определённого вида, результат можно держать в точной целочисленной арифметике, без накопления ошибки округления.
В IEEE 754 точно так же есть суммы определенного вида, не дающие ошибки округления. Более того, я уверен, что это будут точно эти же суммы. Потому что это зависит от системы счисления в первую очередь, а не от соотношения размера экспоненты и мантиссы. Соотношение - это баланс между точностью и размерностью чисел. Чем больше точность, тем больше сумм без ошибки округления, но тем больше сумм с ошибкой переполнения.
Связь с phi тут тупо совпадение, не более.

raoffonom Автор
23.06.2026 11:21Формула IEEE
w = round(4·log2(k)) − 13действует НЕ по всей лестнице, а только для k ≥ 128. Это видно прямо в Table 3.5: binary16/32/64 заданы отдельными строками с конкретными числами (5/8/11 бит экспоненты), а формула стоит в строкеbinary{k}, k ≥ 128. И если подставить в неё k=16 или k=32 — она даёт неправильные значения, реальные экспоненты у binary16 и binary32 шире. Цитирую разбор стандарта: «The formula does not hold for 16 or 32 bits; it is only said to hold for 64 bits and widths that are multiples of 32 greater than or equal to 128 (so not widths 32 or 96)».Более того — в самом стандарте эта формула не нормативная. Она дана как пояснительная заметка: «There is no mandated mathematical rule for the numbers of bits in the significand or the exponent. IEEE 754-2008 does show a formula that describes its listed interchange formats for certain sizes, but this is in a non-normative note» (там же). То есть это подгонка-описание под уже существующие форматы, а не закон, из которого они выводятся.
И низ лестницы выбран эмпирически — это вы сами сказали, и первоисточник это подтверждает. binary32/64 — это по сути форматы DEC VAX F и G от PDP-11; 8 бит экспоненты в single выбраны под диапазон физических констант, а не выведены формулой. Историю принёс Kahan с Coonen как K-C-S draft (интервью Kahan, Berkeley EECS; MathWorks: Floating-Point Arithmetic Before IEEE 754, таблица VAX F/G).
Итого по фактам: у IEEE 754 нет единого замкнутого правила по всей лестнице. Есть эмпирически выбранный низ (16/32/64, исторически из VAX/PDP-11) плюс ненормативная формула-подгонка для k ≥ 128 — причём она пропускает даже 32 и 96. Так что ваш же пример (k≥128 против ручных 16/32/64) — это ровно то различие, которое я и провожу: правило по всей лестнице, включая малые ширины, без сшивки «ручной низ + формула для верха». В этой точной форме IEEE контрпримером не является.

maxp
23.06.2026 11:21Мне интересно, хоть кто-нибудь из наших "троичников" может излагать свои мысли без потрясания "святюми мощами" и вот этого всего в духе "70 лет назад мы опередили время" и т.п.
При всем уважении к заслугам великих ученых, попытки сейчас выезжать на их славе выглядят довольно убого.
Zenitchik
Картинки очень мешают. Разрывают текст, а сами смысловой нагрузки не несут.
dom1n1k
И в пейпере нейрослоповая обложка очень его дешевит.