Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Пустое множество принадлежит к набору фундаментальных объектов современной математики. И не только математики: в чистой философии – значение пустого множества едва ли не выше. Поэтому-то постоянно множатся и роли, которые пустое множество играет в куда более прикладных областях, чем теоретическая математика и философия: в информационных технологиях, да и в технике вообще.
Главное свойство пустого множества в том, что такое множество – единственно. То есть, у нас могут быть множества, собранные из разных объектов, но пустое множество – всегда одинаковое. Более того – это одно и то же множество, вне зависмости от “объектов” и типов. Пустое множество ананасов совпадает с пустым множеством апельсинов по слишком многим характеристикам, чтобы считать, что множества ананасов и апельсинов “пусты” разным образом, как и множество фруктов вообще.
Но, конечно, полностью отказаться от того, что “существуют” и пустое множество апельсинов, и пустое множество ананасов – довольно трудно: вот, только что была введена некоторая различительная окраска – ананасы против апельсинов. Например, если для приготовления блюда требуется ананас, то отсутствие апельсина – никак на кулинарную ситуацию не влияет, тогда как нехватка ананаса делает приготовление невозможным. Однако пустота тут, как концепция, общая. Да, нужно различить понятия “пустота” (“тип”) и “быть пустым” (“стрелка”), но стоит поднять пустоту в ничто, как начинает играть тот фактор, что и ничто, в представлении, бывает белое и чёрное.
Особенности естественного языка, позволяющие оборачивать отсутствие элементов в пустом множестве в размытое значение слова “ничего”, создают тем самым возможность для построения разных силлогизмов из пустого множества. Наверное, самый известный из них – про бутерброд (в вольном переводе): “Что лучше, чем вечное счастье? Ничего! Однако, один бутерброд – заведомо лучше, чем ничего. Следовательно – бутерброд лучше вечного счастья” (R. Smullyan/D. Darling). Здесь, естественно, объяснение в том, что в первой части описывается отсутствие объектов, которые лучше данного: таких объектов, утверждается, пустое множество; а потом, на бутербродном шаге, сравнение производится в обратную сторону: бутерброд заведомо лучше состояния, когда бутерброда нет (не отсутствия объектов, а самого пустого множества). То есть, это разные операции, но то, что пустое множество всего одно, позволяет подменять одну операцию другой.
Например, мне однажды переслали распечатку пары значений вывода утилиты sha256sum, на вход которой подавался результат работы модуля ec из пакета openssl (через “пайп” в консоли). При этом в openssl направлялись два разных файла. Утверждалось, что эти два входных файла содержат одинаковые данные, но только записаны данные в разной форме. Почему? Потому, что равны результаты sha256sum от выдачи openssl. Значения sha256sum, действительно, были равны, несмотря на то, что в openssl передавались разные файлы с разными именами.
Что же произошло на самом деле? Вот что. Утилита sha256sum считает значение хеш-функции SHA-256 от входных данных. Здесь на вход sha256sum поступал вывод openssl ec. Но, ещё раз, если значения равны, то, видимо, тогда и входные файлы содержат одинаковые данные? Нет – одинаковым тут является вывод openssl ec: дело в том, что оба входных файла имели неверный формат, поэтому модуль ec не мог их разобрать и печатал сообщение об ошибке, однако в стандартный вывод – писал пустое множество байтов; то есть, ничего не писал, проще говоря. А значения SHA-256 совпали потому, что на вход хеш-функции поступило пустое множество. А оно – одинаковое, вне зависимости от того, как именно сломался каждый из входных файлов.
Множества, состоящие из элементов разных типов, могут не сочетаться по типам, но пустое множество – сочетается со всеми типами. Когда нет апельсинов и ананасов, шестерней и транзисторов – то, с одной стороны, нет вещей разных типов, но, с другой стороны, общим тут является то, что их нет. Это сплошь и рядом используется в языках программирования.
Скажем, пустое множество возвращается в качестве признака того, что функция завершилась с ошибкой: это хорошо известный объект, обозначаемый nil, null, “” – ещё как-то. Обратите внимание, что значение null оказывается чем-то вроде пустоты, которая может быть помещена в коробку (да, именно так). Но null – это ещё не пустая коробка, как ни странно. В программировании, чтобы null стал “пустой коробкой”, этот null придётся как-то дополнительно трактовать: предположим, использвать null как указатель и попробовать обратиться по его значению (выполнить “дереференс”). Ошибочное толкование пустого множества в случае null и программного кода регулярно приводит к возникновению уязвимостей в ПО, в том числе, в весьма неочевидных случаях.
Современное обозначение для пустого множества – ∅ – появилось относительно недавно, в 30-х годах прошлого века. Но вполне возможно, что саму концепцию систематическим образом впервые строил Джордж Буль, в 1847 году. Впрочем, соответствующая концепция у Буля относится к логике и больше похожа на противопоставление “ничего” – которое есть “нуль”, 0, – “всему”, единице, 1.
Есть более интересное развитие определения: через количество объектов, которые не “само-эквивалентны” (Готлоб Фреге). Здесь “само-эквивалентность” – это обобщение свойства рефлексивности, то есть, когда A = A по свойствам операции, а именно, каждый объект эквивалентен самому себе. Тогда пустое множество – это те объекты, которые не эквивалентны самим себе. Казалось бы – таких объектов просто нет. Но чтобы заявить о том, что чего-то нет, придётся определить это “что-то”, чтобы описать и проотрицать существование, и на этом пути магу легко попасть в ловушку: попытка определения того, чего нет, введение типов, может вызвать данный “зомби-объект” к существованию – он, внезапно, “станет быть” или “будет есть” – как там правильно? А вот способ “не-само-эквивалентных” объектов – позволяет выполнить такое определение без излишней типизации и “зомби”. Ну, в каких-то пределах. Так, в DNSSEC подписывается цифровой подписью факт отсутствия записи – делается это при помощи погружения “отсутствия” в искусственный “пустой интервал” между соседними существующими DNS-записями, иногда такое погружение происходит замысловатым образом.
Не так уж редко используется и свойство пустого множества быть невозможным событием. Как известно, вероятность невозможного события, в каком-то смысле, сильнее нуля – ведь если рассуждать в классическом сеттинге, с действительными числами, то событие с нулевой вероятностью – может произойти. Например, если вы бросаете безразмерную точку на действительную окружность, то вероятность попасть в любое конкретное действительное число тождественно равна нулю, но в какое-то число вы всегда попадёте. Другое дело, что точно записать такие попадания – не выйдет, потому что нельзя записать точно большинство действительных чисел.
Одно и то же пустое множество можно помещать в разные коробки, получая разные пустые коробки. А пустая коробка может служить существенным признаком. Посмотрим на CAA-записи в DNS. Интерпретация этих записей отличается в случае, когда запись есть, но её значение – пустая строка, и в случае, когда нет самой CAA-записи. Здесь буквально проявляется эффект, позволяющий строить натуральные числа из пустого множества: когда нет CAA-записи – это настоящий нуль, пустое множество; когда CAA-запись есть, но она пустая – это уже единица, потому что возможна только одна пустая CAA-запись (ну или так: все пустые CAA-записи – одинаковые). То есть, тут, с одной стороны, играет роль определение того, чего нет: “нет значения CAA-записи” против “нет самой CAA-записи”; с другой стороны – содержательный эффект возникает из погружения пустого множества в большую структуру. Это, в точности, процесс (∅=0, {∅}=1).
Процесс погружения ∅ в {} даёт основной инструмент для генерирования множеств. Фигурные скобки обозначают операцию “множество из (элементов)” (set of). Так, {∅} – это множество из одного элемента, пустого множества. При этом одноэлементное множество (singleton, синглетон) – это не то же самое, что один этот элемент. То есть, заметьте, что {} и {∅} (или, если хотите, {{}}) – сильно разные вещи. Если, борясь за логическую стройность, ввести дополнительно понятие “класса”, как способа избежать возникновения абсурдного “множества всех множеств”, то пересечение всех классов – это и будет пустое множество. Именно поэтому в английском, например, языке пустое множество правильно обозначать как the empty set, с определённым артиклем the, а не an empty set. “A set”, но “the empty set”.
Данное важное свойство закреплено, – обычно!, – и в современных языках программирования высокого уровня. Если написать, что var a := {1} (то есть, переменная a – это массив из одной целой единицы по определению), то станет верным, что 1 != a (то есть, одна целая единица не равна массиву, состоящему из одной целой единицы).
А если взять JavaScript, то можно наблюдать сразу несколько особенностей интерпретации пустого множества и “ссылок” на пустое множество в программировании:
const set = new Set();
const object = {};
set.add(1);
set.add("two");
set.add(object);
set.add(object);
set.add({});
console.log(set.size);
for (const item of set.keys()) {
console.log(item);
}
– эта программа напечатает вот что:
4
1
two
Object { }
Object { }
– ничего странного, но довольно показательно.
Оставим JavaScript и его объекты. В шумерских способах записи чисел для обозначения отсутствия единиц использовали пробел. Занятно, что в шумерской системе, изначально, отличались обозначения для единиц, относящихся к разным типам объектов: предположим, обозначения для мер зерновых отличались от обозначений для мер воды. Это, конечно, связано с тем, что древнейшие системы просто фиксировали количество объектов при помощи изображений именно этих объектов, чтобы можно было попарно сопоставить изображение и реальность: видим три кувшина – рисуем три кувшина в качестве обозначения того, что кувшинов три; видим пять мехов с водой – рисуем пять мехов, в качестве обозначения, что мехов пять, и, возможно, знак воды рядом. Потому что тут ещё нет операции выноса типа выше числа: “кувшины” – три (палки); “меха” – пять (палок). И пустое множество демонстрирует свою уникальность: нет кувшинов, нет мехов – просто не обозначаем кувшины и меха. И именно поэтому пробел, как носитель “пустоты”, в шумерской схеме записи мог появиться только тогда, когда обозначения единиц для счёта уже отделились от типов объектов. То есть, введение пробела произошло сильно позже отказа от зарисовки “мехов и кувшинов”. Понятно, что отдельное обозначение для нуля требуется только в схеме “тип” – “количество”, где количество записывается абстрактно.
Пустое множество – аксиоматично. Так, чрезвычайно часто встречающийся в популярной литературе феномен, известный как “набор аксиом теории множеств” ZFC, буквально содержит аксиому о пустом множестве: “существует пустое множество”. Пустое тут – это то, в котором нет элементов, но оно – множество: то есть, множество, к которому не принадлежит ни один элемент. Получается, “пустота” множества может выступать как предикат: “[A] есть пустое”, и без пустого множества построение логических теорий становится затруднительным.
Удивительно, но побочный эффект того, что всякий элемент не принадлежит пустому множеству, вне зависисмости от типа, приводит к следующему обобщению: для элементов пустого множества всё что угодно – верно. Элементам пустого множества оказывается возможно приписать любое свойство. Это используется даже в модных “интернет-мемах”, как способ наведения сарказма:
никто: [%blah-blah-blah%] иванов: подпрыгивает на батуте
– тут совсем условные обозначения, конечно: “[%blah-blah-blah%]” – пустое, “батут” – содержание. Главное – схема: “никто: {}, кто-то: {предмет мема}”. “Когда никто не догадался, кроме Иванова”.
Комментарии (2) »
Как ещё можно понять, что не бывает квадратных корней из отрицательных чисел? Например, воспользовавшись отношением порядка. Таких корней из отрицательных чисел не бывает над действительными, потому что квадрат любого действительного числа – неотрицателен. Это свойство непосредственно связано с тем, что на действительных числах есть отношение порядка. Ведь что такое отрицательное число? Это число, которое меньше нуля, и при этом “меньше” обладает некоторыми дополнительными, глобальными свойствами (можно сравнить все числа, результат сохраняет арифметику и т.д.). В комплексных числах – такого нет.
То есть, из этого прямо следует, что и квадрат никакого комплексного числа не может быть меньше нуля! Но по другой причине: потому, что в комплексных числах как раз нет полноценного отношения порядка, аналогичного тому, которое есть для действительных. В комплексных числах нельзя сказать, что вот это число – “отрицательное”, меньше нуля, а вот это – “положительное”, больше нуля. Строго говоря, всякие способы “сравнения” комплексных чисел придумать возможно, – например, по значению модуля, по алфавиту записи, ещё как-то, – но никакой из этих способов не будет совместим с арифметической структурой комплексных чисел, соответственно, не будет задавать линейный порядок, сохраняющий операции, которые и делают комплексные числа – комплексными.
Если взять то самое знаменитое √(-121), из труда Бомбелли, то это не есть действительное число, ведь оно не является ни отрицательным, ни положительным, ни нулём. Почему ни отрицательным, ни положительным? По тому самому порядку, который описан выше: отрицательное – это меньше нуля; положительное – это когда нуль меньше числа. Почему не является нулём? Потому что иначе “схлопывается” вся арифметика: должно быть 2 + √(-121) = 2. Но раз нет подходящего отношения порядка, то нет и отрицательных/положительных. Это всё отмечено у Бомбелли – буквально, он пишет, что “такой радикал не может быть назван ни положительным, ни отрицательным”. В его “Алгебре” это означало, что у значения вида √(-121) есть особенная сигнатура, а поэтому нужно ввести дополнительную операцию по работе с этой сигнатурой, что в истории математики и принято называть изобретением “мнимой единицы”.
Посмотрим на ситуацию чуть более детально, пусть и не совсем строго. Положим, что обычные “плюсы” и “минусы” – это +1 и -1, а “необычные”, комплексные, это +i и -i. Мы получили кортеж значений: {+1, -1, +i, -i}. Попробуем ввести привычное отношение порядка, сохраняющее “естественную” арифметику. Предположим, что -i < 0 (отрицательное), а +i > 0 (положительное). Тогда (+i)*(+i) должно быть положительным, больше нуля.
Однако, согласно свойствами мнимой единицы, (+i)*(+i) = -1 – именно это и позволяет выносить сигнатуру из-под знака радикала: √(-121) = (+i)*11. Получается, что -1 > 0, то есть, -1 – положительное? Но тогда -i = (+i)*(-1) должно быть тоже положительным, ведь мы и приняли, что +i – положительное, и нашли, что -1 – тоже положительное. Следовательно, уже из соображений симметрии, +1 – отрицательное, то есть, +1 < 0. Странно, не так ли? Более того, +i – тоже отрицательное. Но мы ведь приняли, что +i – положительное? Противоречие. Поэтому-то ввести тут привычные отрицательные и положительные числа, но с сигнатурой i, не получится. Не получится и построить отношение линейного порядка “с арифметикой” на комплексных числах. Это ещё одно доказательство того, что никаких квадратных корней из отрицательных чисел быть не может – нарушится логика построения числовых структур.
Что же это за √(-121)? Что получается, если “возвести его в квадрат”? √(-121) – это комплексное число. Когда вы его возводите в квадрат, то тоже получаете комплексное число: -121 + i*0. То, что мнимая часть здесь “умножена на ноль”, вообще говоря, не делает число автоматически действительным. Потому что базовая операция умножения проводилась в комплексных, её результат – комплексное число, поэтому -121 = -121 + i*0 – комплексное. Тут всегда пары значений. А “забыть о комплексных” – это уже дополнительная операция, которая позволяет сопоставить некоторые комплексные числа – действительным (не парам действительных, заметьте!); операция, так сказать, позволяет спустить некоторые комплексные – в действительные. Да, эта операция регулярно подразумевается. Отсюда и надуманная “противоречивость”, из которой стало модно делать кричащие, но ложные, утверждения: мол, “можно” извлечь квадратный корень из отрицательного числа, но “вам об этом не говорят”. Напоминает историю со школьной задачей про ящики и апельсины.
Комментировать »
Попросил (на английском) ChatGPT 5 объяснить, почему в русском языке форма множественного числа слова “дно” используется для обозначения “жены дона”. Это такая шутка. ChatGPT, ранее, в другой ветке, заявляло мне, что владеет русским на высочайшем уровне, не хуже образованных носителей, так что запрос – по теме.
Однако ChatGPT заявило, в весьма пространных объяснениях, которые я не стану тут приводить, что это не так, не используется “дно” для “жены дона”. Потому что – внимание! – множественное число для “дно” – “днá” (именно так, с диакритическим знаком ударения над “a”). И ChatGPT привело пример:
одно́ дно́,
мно́го днá.
Так-то. Ну а “жена дона” – это “донна”. И дальше ChatGPT объяснило, мол, юмор тут в том, что “люди в шутку говорят: жена дона – это дна”.
А когда я написал, что, получается, это ChatGPT не знает форму множественного числа для “дно”, ответом было уверенное “I do” (“Я знаю”), со смайликом. После чего ChatGPT повторило, буквально, следующее:
The plural of дно́ is днá (stress on the second syllable):
одно́ дно́
два / три / мно́го днá
Это довольно забавно. Ударение, главное, в “днá” – на втором слоге. Не перепутайте. А самое смешное, так это слово, которое ИИ ChatGPT приводит в качестве иллюстрации того, что в русском есть и другие “контринтуитивные множественные”: “око́ → очá”.
Конечно, все эти современные говорилки, по сравнению с временами “хлопка от шампанского” и “личинок, блокирующих собачку в замке”, сильно продвинулись. ChatGPT, надо сказать, годится в качестве неплохого инструмента для поиска необычных примеров в текстах (ну, в тех случаях, когда LLM не выдумывает ответ). К сожалению, использовать этот инструмент для обработки естественного языка нужно с большой осторожностью. А при изучении иностранного языка – это, опять же, так себе помошник. Пример с “дном” и “доньей” хорошо это показывает.
Несомненно, “дно” – это весьма сложный случай. Обычно, вопрос про множественное число для “дна” ставит в тупик носителей русского, даже если они получили профильное (да, как ни странно) образование (литераторы, журналисты, иногда и филологи). Но ни одному образованному носителю русского не придёт в голову утверждать, что множественное для “дно” – “дна”. Именно в этом и состоит тупик: в совершенстве владеющий языком человек сразу понимает, что “дна” – никак не может быть множественным для “дно”; это будет не на русском. Другое дело – генератор текстов, у которого нет и не может быть понимания языка. Но “хайпу” это не мешает.
А множественное для “дно” – “донья”. Например, “сетчатые донья для ульев”.
Комментировать »
Небольшой исторический экскурс, про комплексные числа и “квадратный корень из минус единицы”. Читаем исходники Бомбелли. Почему Бомбелли? Потому что без упоминания этого итальянского инженера-математика 16 века не обходится ни один экскурс в историю внедрения комплексных чисел. Про Рафаэля Бомбелли нередко пишут, что он “первым ввёл в обиход комплексные числа”. Несомненно, труд Бомбелли “Алгебра” (L’Algebra) сыграл одну из ключевых ролей в становлении подходов к алгоритмическому пониманию комплексных чисел. Но что именно сформулировал Бомбелли, и как именно? Насколько этот объект похож на современные комплексные числа?
Традиционно ссылаются на небольшой фрагмент из “Алгебры” Бомбелли, в котором прямо определяются правила арифметики для “мнимой единицы”, то есть, для i. Тут, однако, кавычки необходимы: мнимая единица – это в современных терминах; как будет понятно далее, у Бомбелли всё несколько иначе записано.
“Алгебра” Бомбелли написана на итальянском. Чтобы проиллюстрировать различие подходов, я постараюсь в ключевых местах дать дословный перевод текста Бомбелли, максимально близкий к исходнику (ну, на мой взгляд). Это позволит понять, как вообще описывались алгебраические объекты до появления современной нотации, и возможно ли сравнивать объекты непосредственно.
Кстати, современная алгебраическая нотация является настолько огромным достижением сама по себе, что именно её мог бы использовать “попаданец” в средневековое европейское прошлое для эффективного убеждения инквизиторов в том, что он, “попаданец”, реально из будущего. Современные для двадцать первого века теоремы, скажем, типовой “попаданец” не сможет даже сформулировать. Как и убедительно рассказать про “металлических птиц” и “дальновидение”, чтобы обособить свой рассказ от прочих волшебных историй, бытовавших и в средние века – просто, тут необходимо знать слишком много, для “попаданца”. Зато базовая алгебраическая нотация, на уровне записи формул корней квадратного уравнения, нынче хорошо знакома едва ли не каждому, а на образованного инквизитора прошлого произведёт впечатление. Но всё это в художественном произведении, конечно. Почему-то, этот вариант, хоть он простой и доступный, упускают из виду. Вернёмся, впрочем, к итальянской “Алгебре” 16 века.
Ниже дан первый фрагмент скана соответствующей страницы (это издание 1579 года, из библиотеки Linda Hall; страница 169; выделение цветом – моё; в некоторых местах, где допустимо и если не влияет на контекст, – я исправляю опечатки исходника и меняю типографику на современную итальянскую, для лучшего текстового представления, например, u -> v; см. детали ниже).

Итак, итальянский – исходный язык, на котором писал свой труд Бомбелли. Это уже далеко не латынь, но и не совсем современый итальянский – 16 век, всё же. (Знание итальянского для понимания этой заметки не требуется – я все важные слова объясню ниже.) В самом начале страницы, Бомбелли, буквально, пишет (пожирнение тут везде соответствует тексту, выделенному на скане): “Я обнаружил другой тип кубических корней выражений, который сильно отличается от всех других” (“Ho trovato un’altra sorte di R.c.legate molto differenti dall’altre”.)
Здесь сразу же попадается интересный термин: “R.c.legate”, от Radice Cubica Legata, – это обозначение для кубического корня, вычисляемого для некоторого алгебраического выражения (формулы), которое, как сейчас сказали бы, стоит “под радикалом”. Откуда и legata – “связанная” (итальянское radice, “корень” – женского рода; кстати, если вы только изучаете русский, то и “корень” вам тоже может показаться существительным женского рода). В общем, если на русском, то будет “связанный корень” или, что несколько точнее, “присоединённый корень”.
Что тут имеется в виду? Бомбелли определяет соответствующий больший термин – Radice Legata – за несколько десятков страниц до рассматриваемого фрагмента “Алгебры”. И в определении дан такой пример (здесь он записан в современных обозначениях и терминах): пусть кто-то говорит, “найди мне квадратный корень из (7 + √48)”, это означает, что нужно найти такое выражение вида a + √b, которое, “умноженное само на себя, даст (7 + √48)”; такое выражение, пишет Бомбелли, это (2 + √3). Проверяем: (2 + √3)*(2 + √3) = 4 + 4*√3 + 3 = 7 + 4*√3 = (7 + √48). Сходится.
Однако Бомбелли, когда описывает здесь нахождение квадратного корня в подобной форме, не использует термин “квадратный корень”. Он, буквально, пишет: “найди мне сторону” (дословно: trovami il lato). И это, вообще говоря, сторона квадрата, площадь которого равна заданному выражению (с иррациональностью!). Это всё похоже на геометрический подход, разделяющий числа и “величины”.
Нужно отметить, что, как сейчас бы сказали, Бомбеллли строит расширение поля рациональных чисел: потому что (7 + √48) = (7 + 4*√3) – это присоединение к рациональным числам иррационального √3, где √3 – это обозначение числа, квадрат которого равен 3 (определение корней дано у Бомбелли через умножение, а это очень важно). То есть, рассматриваем всевозможные выражения вида a + b*√3, где a, b – рациональные числа. Естественно, во времена Бомбелли абстрактной теории полей ещё не было, как и коммутативной алгебры в современном понимании. Но тем не менее.
Получается, геометрическая интерпретация всё ещё отражена у Бомбелли в терминах (“найти сторону”), но искомые “радикалы” вводятся уже через присоединение “внешнего” корня многочлена, через расширение поля, а не через “углы”, которые сейчас повсеместно связывают с комплексными числами, – например, в радиотехнике, но не только там. Именно алгебраическое определение комплексных чисел через расширение поля (присоединение корня полинома X^2 + 1) и является современным, – “операционным” и алгоритмическим, – вариантом. Угловые меры, как инструмент, конечно, в труде Бомбелли тоже есть, в том числе, при рассмотрении решений кубических уравнений. Но это не комплексные числа, а другой инструмент.
Фактически, “R.c.legate” это запись корня уравнения в кубических радикалах, с присоединением иррациональностей. Но всё же, получается, что речь тут идёт о специальном “радикале”, как способе записи, а не о теоретическом “числовом” объекте. Это следует ещё и из того, что темой соответствующего раздела является решение уравнений третьей степени (формула Кардано, в частности). В современных обозначениях – ∛(a + √d) – кубический корень из выражения, содержащего корень квадратный. Этот последний момент – важен для понимания дальнейшего текста.
Итак, имеем радикалы из выражений вида a + b√d, как способ записи, пригодный для специальных вычислений. Идём дальше – дословный перевод следующего фрагмента со скриншота труда Бомбелли: “эта вещь [радикал] встречается в главе, рассматривающей куб, равный многим ([т.е. кратности неизвестного]) и числу”. Вот этот странный текст про “куб, неизвестное и число”, это есть ни что иное как запись словами уравнения вида x^3 = px + q, если в современных обозначениях. (Далее будем называть здесь q не “числом”, а константой – так понятнее.)
Бомбелли здесь рассматривает куб неизвестного х, слева, и он приравнивается к значению, кратному этому х (p*x), плюс некоторое число (буквально – numero), константа “без неизвестного”, то есть плюс q. Именно такая форма уравнений рассматривается. Вообще, это не единственная используемая “нотация”. Тот же Бомбелли далее в “Алгебре” использует специальную нотацию с отдельным обозначением степеней неизвестной арабскими цифрами (но без формального обозначения самой неизвестной – как сейчас написали бы: x или t). Однако в обсуждаемом фрагменте – тип уравнения назван просто словами. Ни о каких операциях речи ещё не идёт, но тут же вводится важное ограничение, выделяющее интересующий Бомбелли подтип уравнений и приводящее, в итоге, к “мнимым” (или “софистским”) радикалам.
Далее сформулировано условие, что (p^3)/27 больше (q^2)/4, но опять словами, при этом (p^3)/27 = (1/3*p)^3, а (q^2)/4 = (1/2*q)^2. Дословно по тексту: “когда куб одной третьей от кратности [неизвестного] – больше, чем квадрат половины числа [константы]”. В исходном тексте: “quando il cubato del terzo delli tanti è maggiore del quadrato della meta del numero” – “cubato del terzo” – “куб одной третьей”, “è maggiore del quadrato” – “больше квадрата” и т.д. То есть, всё описано словами, и речь о конкретном случае значений коэффициентов. Разительно отличается от современного подхода к изложению материала. Почему (p^3)/27 > (q^2)/4? Об этом сказано буквально через несколько слов.
Пропускаем слова о том, что примеры с таким уравнением Бомбелли разбирает в отдельной главе, читаем дальше и пытаемся разобраться: “соответствующий тип квадратного корня в своём вычислении (Algorismo) требует операций, отличных от всех других, и другого названия” (“la qual sorte di R.q. hà nel suo Algorismo diversa operatione dall’altre, e diverso nome”). Здесь R.q., от Radice Quadrata, – это уже квадратный корень, но терминологическая логика остаётся той же. Почему же речь теперь про квадратный корень, если сначала упомянуты кубические? Потому что здесь написано про “подрадикальный” корень, соответствующий вычислению корня кубического. Собственно, когда вы решаете кубическое уравнение в радикалах, то в процессе решения обязательно возникает квадратное уравнение и квадратные корни. В формуле Кардано они и составляют смысл всей затеи. О чём и пишет Бомбелли далее: “когда куб одной третьей кратности больше квадрата половины константы, тогда нельзя назвать [его] ни больше, ни меньше“. То есть, тут речь про значение “ни с плюсом, ни с минусом”. Необходимо учитывать, что отрицательные числа пока что не используются как класс, привычный сегодня: например, довольно сложно определить, что такое сторона квадрата, имеющая “отрицательную величину”. Поэтому “ни больше, ни меньше” – “ne più, ne meno”, – как операции увеличения и уменьшения чего-то: a + b, a − b.
Формула Кардано имеет вид (a + √b)^(1/3) + (a − √b)^(1/3), то есть, это сумма двух кубических корней, соответствующих R.c.legate Бомбелли, а “ни больше, ни меньше” относится к части √b. Ведь в формуле Кардано b = (q^2)/4 − (p^3)/27, соответственно, если (p^3)/27 больше (q^2)/4, то и получаем отрицательное значение под квадратным корнем. Это и есть та величина, про которую ни сказать, что “она больше”, ни сказать, что “она меньше”.
Дальше: “но [эти элементы] называю “плюс минуса”, там, где их нужно складывать ([увеличивать]), а где их нужно отнимать ([уменьшать]), называю “минус минуса”, и эта операция необходимейшая…” (“però lo chiamerò più di meno, quando egli si doverà aggiongere, e quando si doverà cavare, lo chiamerò men di meno, e questa operatione è necessarissima…”). То есть, в том случае, когда под радикалом отрицательное число, Бомбелли такое сочетание не считает возможным называть, ни “большим”, ни “меньшим” – читай: ни положительным, ни отрицательным, – но называет “плюсом минуса” и “минусом минуса”. Для прототипа i тут вводится специальное, двойное операционное обозначение. Те же “плюс минуса”/”минус минуса” можно перевести и как “больше минуса”/”меньше минуса”. Что это могло бы обозначать? А это больше всего похоже на описание способа выноса мнимой единицы из-под радикала. Например, перепишем (2 − √(-3)) как (2 − i*√3).
Что касается исключительной важности новой операции, которая объявлена “необходимейшей”, то речь тут об уравнениях четвёртой степени (potenza di potenza) разной формы, где подобные радикалы возникают “гораздо чаще, чем другие”.
Далее Бомбелли пишет, что “[подобные радикалы] многим покажутся скорее “софистскими”, чем “настоящими”; такого мнения и я сам придерживался тоже, пока не нашёл для него [радикала] демонстрации геометрической” (“la quale parerà à molti più tosto sofistica, che rale, e tale opinione hò tenuto anch’io, fin’ che hò trovato la sua dimostratione in linee”).
Как ни странно, но геометрическая демонстрация (на плоскости, да), которую Бомбелли приводит отдельно (а я здесь пропускаю), это вовсе не современная геометрическая интерпретация комплексных чисел – с поворотом, углами, мнимой и действительной осями.
Промежуточный итог: Бомбелли рассматривает некоторые “новые радикалы”, отдельный тип квадратного корня, со своим названием и свойствами, как составную часть операции отыскания кубических корней. То есть, в качестве вспомогательного элемента, чтобы операция работала, используется новый объект, который очень похож на мнимую единицу (см. “плюс-минусы” выше), но вовсе не на квадратный корень из минус единицы, как на число вообще и на “рациональное” число в особенности. Далее Бомбелли перечисляет правила умножения “знаков” для нового элемента: “и вначале разберу умножение, определив закон для плюса и минуса” (“e prima trattarò del Moltiplicare, ponendo la regola del più & meno”). На скриншоте ниже – эти определения.

Если новый “минус” заменить на обозначение i, то получится, что здесь написано следующее (пример из: F. La Nave and B. Mazur, Reading Bombelli, 2001):
1. (+)*(+i) = +i
2. (−)*(+i) = −i
3. (+)*(−i) = −i
4. (−)*(−i) = +i
5. (+i)*(+i) = −
6. (+i)*(−i) = +
7. (−i)*(+i) = +
8. (−i)*(−i) = −
Если представить, что “чистый” минус и “чистый” плюс – это подразумеваемые плюс/минус единицы по умножению (как в современной нотации), то получится, что в пятой строке записано (i*i) = i^2 = -1. А это корректное определение мнимой единицы. Может показаться, что обобщив определение квадратного корня в “Алгебре” Бомбелли получаем √(-1) = i, поскольку i*i = -1, но это не так, поскольку Бомбелли не вводит i как “число” или как измерение “стороны”. Это i – приписано сейчас, это некий анахронизм, а в исходном тексте (см. скриншот выше), фигурируют лишь операционные обозначения “плюс минуса” и “минус минуса”. И тем более выделение концепции мнимой единицы оказывается в некотором противоречии с тем, что данные специальные радикалы (R.C.Legata) вводятся непосредственно для выражений вида (a + √d), применительно к кубическим уравнениям. А в современном варианте извлечение кубических корней из комплексных чисел требует формулы Муавра и тригонометрического представления.
Бомбелли находит решение в радикалах для уравнения x^3 = 15*x + 4. Это, пожалуй, второй самый цитируемый фрагмент “Алгебры”. Во времена Бомбелли было известно, что кубическое уравнение всегда имеет один (действительный) корень, а особый интерес представляли только положительные корни. С одной стороны, положительный корень x^3 = 15*x + 4 нетрудно угадать: x = 4. С другой стороны, (4^2)/4 = 4, (15^3)/27 = 125, и формула Кардано даёт для этого уравнения следующее выражение: ∛(2 + √-121) + ∛(2 − √-121). Это как-то не очень похоже на 4.
Вообще, можно найти и некоторые другие озадачивающие варианты значений внутри формулы Кардано для уравнений с очевидным целым корнем, без “отрицательных радикалов”, особенно, если вам знакомо уравнение Пелля, но это тема для другой записки. Что же касается √-121, то это всё равно выглядит сложно. Даже сейчас, для современного взгляда. Потому что, вообще говоря, и значений кубического корня получается несколько, и для случая трёх действительных корней формула Кардано, мягко говоря, несколько бесполезна.
Однако Бомбелли, иллюстрируя свой новый метод, показывает, что (2 + i)^3 = (2 + √-121), если только следовать описанным выше правилам. И действительно, (2 + i)*(2 + i) = (3 + 4i), (3 + 4i)*(2 + i) = (2 + 11i) = (2 + √-121). Соответственно, (2 − i)^3 = (2 − √-121), так сказать, из соображений симметрии (это отмечено у Бомбелли, как ни странно). Поэтому ∛(2 + √-121) + ∛(2 − √-121) = (2 + i) + (2 − i) = 4. Вот только в данном конкретном случае значения нетрудно подобрать под известный ответ. А в других случаях – без рационального аналога тригонометрии с кубическими корнями будет трудновато.
Комментировать »
Если вы вдруг думаете, что “док-станции” и сопряжение наручных “смарт-часов” со смартфоном – это очень новое, то вот система Breguet Sympathique начала 19 века – 1814 года выпуска, из британской Королевской коллекции. Да, это тот самый “Брегет”, упоминаемый, например, у Пушкина. Только здесь большие настольные (накаминные, если точнее) часы снабжены механическим интерфейсом для подключения карманных часов – то есть, самой что ни на есть настоящей, пусть и механической, “док-станцией”.

(Credit: Royal Collection Enterprises Limited / Royal Collection Trust.)
Карманные часы устанавливались в специальный захват на верхней панели основных часов. При этом основные часы автоматически корректировали время карманных и точность их хода.

(Credit: Royal Collection Enterprises Limited / Royal Collection Trust.)
Коннектор крупным планом. Здесь имеется микроскопический центральный вал, который подключается к механизму карманных часов через специальное отверстие в корпусе последних – см. следующую иллюстрацию.

(Credit: Royal Collection Enterprises Limited / Royal Collection Trust.)
В нижней части механизма, за отверстием в корпусе, видны некоторые детали механического интерфейса, при помощи которого регулировалось положение стрелок карманных часов, – они устанавливались синхронно показаниям основных, – осуществлялась коррекция хода карманного механического гаджета (по разнице между опорным временем основных часов и фактическими показаниями времени на карманных). Были и более поздние варианты системы, с автоматическим заводом пружины карманных часов.
Девятнадцатый век. Никаких транзисторов и Bluetooth. Но, естественно, штучная ручная работа.
Комментировать »
Немного про понимание определения комплексных чисел, и о том, почему “квадратные корни из минус единицы” не должны вызывать никаких проблем и сомнений, сами по себе.
Комплексные числа – это пары действительных чисел (x, y), операции с которыми производятся по следующим правилам:
сумма:
(x1, y1) + (x2, y2) = (x1 + x2, y1 + y2);
произведение (пишем иксы слева):
(x1, y1)*(x2, y2) = (x1*x2 − y1*y2, x1*y2 + x2*y1).
Здесь операции внутри скобок – привычные операции в действительных числах. Но интерпретируются строго пары! Из пар можно аккуратно спуститься в действительные числа, зафиксировав один из элементов пары и забыв про то, что это пара элементов (см. ниже).
Собственно, это всё, что нужно для понимания в историческом контексте. Все остальные современные “надстройки” – именно “надстройки”: они вводятся над только что описанной конструкцией.
Сложение для пар проверяется элементарно. С умножением чуть-чуть сложнее, но, например, сразу получается, что i (мнимая единица) это (0, 1). Проверяем для i*i = i^2:
(0, 1)*(0, 1) = (0*0 − 1*1, 0*1 + 0*1) = (-1, 0)
Выходит, в наших обозначениях, i*i = i^2 = (-1, 0). Поэтому-то можно записывать комплексные числа, заданные парой (x, y), в форме x + y*i. Но это просто способ записи (удобный по ряду причин, которые тут не важны).
Вернувшись к парам в скобках, можно все действительные числа записывать в форме (x, 0), где x – любое действительное число, в “привычном” понимании. Это, опять же, соглашение. Тогда получается, что i^2 = (-1, 0) – это и есть -1 (“минус единица” в действительных). Всё сходится. Но обратите внимание, что запись (0, 1) для i – она не укладывается в форму (x, 0). Потому что i не лежит в действительных числах. Квадрат любого действительного числа всегда неотрицателен, поэтому никаких “корней из минус единицы” там быть не может. А вот в виде пар (x, y), с описанными выше операциями, – пожалуйста, можно записывать.
Проверим нужное свойство квадрата для отрицательного числа -121, будем возводить в квадрат число (0, √121). Здесь 0 – слева, а корень квадратный из 121 (положительного!) – справа. Всё это действительные числа. 121 – положительное действительное, нет никаких противоречий:
(0, √121)*(0, √121) = (0*0 − √121*√121, 0*√121 + 0*√121) = (-121, 0).
Сходится. Тут все задействованные числа – действительные. Но тут нет никаких “отрицательных квадратов” действительного числа. Просто, числа связываются в пары. Переход от действительных чисел к парам (от R к R^2, если хотите) – это очень просто. И как только этот переход охвачен пониманием, тут же перестаёт казаться удивительным широко тиражируемый факт, что i – это, как бы, квадратный корень из минус единицы (на самом деле – нет, не квадратный корень, это лишь некоторое наложение обозначений, вполне типичное, – см. ниже).
Вообще, действительные числа – куда как более загадочный объект. Их очень сложно, если вообще возможно, определить. Попытки строгого построения действительных чисел тут же сталкиваются с инструментами анализа, вроде бесконечных последовательностей и сходимости, что неминуемо уводит в философские аспекты математики, начиная с логики и аксиоматического построения теории множеств. Комплексные числа, на этом фоне, выглядят прозаично. И никакой проблемы с “несуществованием” квадратных корней из отрицательных чисел – нет вообще. Да и не было.
Что же придумывали для кубических уравнений дель Ферро, Кардано и другие итальянские математики 16 века?
Они придумывали “калькулятор”, позволяющий находить корни уравнений при помощи зафиксированной последовательности некоторых операций. Это называется “решение в радикалах”. И вот оказалось, что одной из новых операций стала обработка выражений вида √-9. Почему это необходимо для процесса решения кубических уравнений – в максимальной общности объяснил Галуа, в 19 веке. Но ещё в веке 16 стало понятно, что для того, чтобы такие операции заработали в новом калькуляторе, нужны пары действительных чисел. Тогда можно найти пару (0, 3), которая, при умножении на себя согласно правилам, описанным выше, даст (-9, 0), а уже это значение можно спустить в действительные числа, получив там -9 (проверьте сами). То есть, квадрат (0, 3) даёт действительное -9. Да, из-за отсутствия современной нотации это не прописывалось прямо, в формулах, а проговаривалось словами и в других терминах. Отсюда и рассуждения про “тонкости арифметики”.
Итак, мы нашли пару (0, 3). Означает ли это, что мы нашли действительный квадратный корень из отрицательного числа (из числа минус девять)? Нет, не означает. В действительных числах квадрат любого числа, отличного от нуля, – положителен, по определению, и не важно, по какую сторону от нуля это число лежит – квадрат всё равно будет справа, будет положительным.
А что же с “корнем из минус единицы”?
Оказывается, знак радикала (√) тут нужно рассматривать как часть обозначения. То есть, это не операция извлечения квадратного корня в действительных числах, как, например, в случае трактовки √4 = 2. Радикал и “минус единица” – это обозначение внешнего элемента, квадрат которого равен “минус единице”. Поскольку этот элемент, как число, не может принадлежать к действительным числам, радикал идёт тут вместе с записью “минус единицы”. Не более. Аналогично тому, как √2 можно понимать как обозначение числа, квадрат которого равен рациональному числу 2.
Поэтому-то обозначения √-1 следует избегать. Поэтому нельзя использовать такой вариант обозначения в учебных целях (если, конечно, речь не про объяснение того, почему некорректно так делать). Как только знак радикала перепутывается в понимании с привычным обозначением операции, возникает неприятное противоречие – так как, по правилам операции, получается, что i^2 = √(-1)*√(-1) = √((-1)*(-1)) = √1 = 1, что, очевидно, неверно. В общепринятых обозначениях избежать этого можно так: мы обозначаем i как i, а свойства вводим так: i^2 = -1. А в схеме с парами значений – просто пишем (0, 1), и никаких трудностей.
Комментировать »
Ещё немного историй про монеты, которые имеют большое значение как некоторый “фокальный объект”. Если посмотреть на почти современные греческие монеты (конец прошлого века), то нетрудно заметить интересную особенность – она хорошо видна на иллюстрации ниже.

На этой иллюстрации – аверсы двух монет в 10 греческих драхм. Однако на левой монете, датированной 1988 годом, написано ΔΡΑΧΜΕΣ, а на правой, которая из 1976 года, ΔΡΑΧΜΑΙ. И то, и другое слово – это множественное число для драхм. Отличие лишь в двух последних буквах: эпсилон-сигма сменяют альфа-йоту. Почему? Может, это опечатка, и тогда одна из монет представляет собой редкость?
Нет. Это не опечатка. Это физическое воплощение весьма мощного для новогреческого языка социального явления, которое известно как греческая диглоссия или “языковой вопрос”. Дело в том, что в современной Греции почти пару сотен лет, – с восемнадцатого века и до середины двадцатого, – шла активная борьба за сохранение “книжного языка” (καθαρεύουσα, “кафаревуса”) в качестве языка официального, в противовес разговорному языку греческого народа (δημοτική γλώσσα, “народный язык”, или просто “димотика”). То есть, в противовес тому языку, которому, с начала двадцатого века, обучали в начальной школе (например).
Под “официальным языком” тут имеется в виду язык, на котором составлялись важные документы и которым могли пользоваться чиновники в государственных учреждениях. Последний момент, кстати, приводил к тому, что даже не все грамотные и образованные греки могли понять, что именно пишут – или, реже, говорят – в том или ином учреждении на “книжном языке”, на “кафаревусе”, который был ближе к древнегреческому.
Результатом этого процесса стал окончательный переход к димотике, и в качестве “официального языка” тоже. Это произошло в 1976 году (дата на монете справа).
Так что разная запись, – с сигмой или с йотой, – это отражение перехода на димотику, в которой пишут ΔΡΑΧΜΕΣ. Поэтому и на монетах стали чеканить форму с эпсилон-сигмой. Но чеканить такие монеты начали позже 1976 года, а именно – с 1982.
А схематическое изображение атома на аверсе этих монет присутствует тоже не просто так: монеты посвящены Демокриту – его портрет отчеканен на реверсе.

Комментировать »
Нередко приходится слышать, в качестве ответа на критику очередного “опуса”, сгенерированного ИИ, что, мол, люди тоже публикуют всякие “бесполезные наборы слов”. Поэтому процитирую весьма занятный фрагмент из недавней публикации известного британского физика Джонотана Оппенгейма (Jonathan Oppenheim). Прямо по этой же теме. Контекст – рассуждения (англ.) о научной публикации в Physics Letters B, которая, как заявлено, основана на “идее, сформулированной ИИ Chat GPT-5”. (Сама работа, при ближайшем рассмотрении экспертом, оказывается и бесполезной по основной идее, и ошибочной по содержанию; однако выяснить это непросто, откуда и популярный нынче термин AI slop – “ИИ-помои”.)
Конечно, исследователи-люди тоже выпускают “помои” (slop): лишь небольшая доля публикаций интересна. Да, нам точно нужны более высокие стандарты публикации, и мы должны писать меньше работ. Однако разница между “помоями”, созданными человеком, и “помоями” ИИ состоит в том, что “помои” от людей помогают поддерживать исследовательское сообщество. И это сообщество исследователей нужно нам: оно позволяет обучать студентов, служит “институциональной памятью”, действует как распределённая сеть знаний и коллективного чувства стиля. Это то самое большее исследовательское сообщество, что создаёт и поддерживает (sustain) великих учёных. А у “помоев”, которые производит ИИ, нет никакой выгоды, насколько я вижу.
/Of course, human researchers also produce slop – only a small percentage of papers are interesting. And yes, we should definitely have higher standards for publication, and write fewer papers. But the difference between human slop and AI slop, is that human slop helps sustain a community of researchers. And we need this community of researchers, to train students, serve as institutional memory, and act as a distributed network of knowledge and collective taste. It is this wider community of researchers which sustain the great scientists. While the slop that AIs produce have no benefit as far as I can see./
Комментировать »
“Envelopes at sixpence a packet. Particular man in his stationery.”
Arthur Conan Doyle
The Sign of the Four
(Это дополненная версия статьи, которую я ранее опубликовал на “Хабре”.)
Исторический анекдот гласит, что в тридцатых годах прошлого века в Великобритании наблюдалась сезонная нехватка шиллингов в обращении. Почему? Потому что много монет находились внутри газовых счётчиков и счётчиков электроэнергии. Такие счётчики были в ходу ещё и в шестидесятых годах. Если вы смотрели старые британские фильмы, то там нередко показаны ситуации, когда для того, чтобы включилось электричество в квартире или домашнее отопление, нужно опустить монетку-шиллинг в специальный счётчик, установленный тут же. Получив монетку, счётчик включает газ или электричество на какое-то время. Собранные монеты из счётчика периодически забирал специальный сотрудник компании-поставщика энергии. Зимой, естественно, и электричество, и тепло востребованы больше, поэтому больше монет оседало внутри счётчиков.
Шиллинги регулярно задействует Шерлок Холмс в классической советской серии телефильмов: два шиллинга за информацию о лодке, 56 шиллингов за возможность просмотреть вчерашнюю порцию бумажного мусора в нескольких гостиницах. Шиллинг сюда, шиллинг – туда. Собрался целый фунт, даже больше. Но монеты в один фунт не было. Да, был соверен – 20 шиллингов, что соответствует одному фунту по количеству, но, тем не менее, это соверен, а не фунт. В современной Великобритании, несмотря на Шерлока Холмса, шиллинги не ходят. Они довольно давно исключены из оборота. Куда же исчез шиллинг? Оказывается, он превратился в пять пенсов.
Комментировать »
В IETF и вокруг сейчас происходит небольшой технический скандал, непосредственно связанный с внедрением рекомендаций по использванию негибридных криптосистем ML-KEM в TLS.
Если очень кратко, то переход на постквантовую криптосистему ML-KEM, как единственный механизм получения сеансового секрета, может восприниматься как попытка протолкнуть в TLS некий бэкдор, который отсутствует в X25519 (сейчас X25519 используется вместе с ML-KEM, в составе гибридной криптосистемы, поэтому бэкдор в ML-KEM, для гибрида, только лишь снизит стойкость в два раза).
На днях появилась весьма занятная публикация, непосредственно касающаяся технической части этого скандала: ML-KEM Mythbusting (“Разрушение мифов об ML-KEM”, англ.). Самый удивительный аспект этой публикации в том, что автор прямо утверждает: “в ML-KEM нет бэкдора, это можно доказать”. Вообще, доказать отсутствие бэкдора в криптосистеме не просто сложно, а, часто, невозможно. Особенно, если речь идёт об асимметричных схемах инкапсуляции ключа. Видимо поэтому в публикации по ссылке утверждение заметно более размытое: делается попытка доказать, что это в параметрах ML-KEM недостаточно энтропии для того, чтобы встроить качественный бекдор. (“Качественный” тут – это доступный только держателю секретного ключа от бэкдора, как в DUAL EC DRBG.)
Что имеется в виду? Вот что: якобы, если множество вариантов параметров криптосистемы достаточно маленькое, чтобы перебрать его за обозримое время, то бэкдор там негде прятать – его можно будет обнаружить простым перебором. И вот в ML-KEM, как бы, это множество – всего 34 бита. Как бы, утверждение верное, вот только оно сильно слабее, чем предположение о бэкдоре: бэкдор может находиться непосредственно в алгоритмах, поэтому, для его обнаружения прямым перебором, нужно будет мощность множества параметров возвести в некоторую большую степень (это, примерно, как идея моделирования квантовых вычислений, когда у вас все 2^34 варианта участвуют в расчётах на каждом шаге).
Также упомянут заложенный в алгоритм отказ с ошибкой при обработке корректного шифротекста. Малая расчётная вероятность такой ошибки, – которая вероятность, кстати, прямо связана с выбором параметров, но про это ничего в публикации не сказано, – сравнивается с возможностью аппаратного сбоя: вероятность сбоя, – например, перещёлкивания битов под воздействием космического излучения, – оказывается выше, чем расчётная вероятность штатного сбоя ML-KEM. Но, всё же, аппаратный сбой в результате “пролёта нейтрона”, это совсем не то же самое, что и идеальная ошибка, заложенная прямо в алгоритм. Я, кстати, писал об этом моменте, именно в части ML-KEM.
Вообще, конечно, история, в которой ML-KEM почему-то начинают тщательно “обелять”, доказывая, что там нет бэкдора – несколько подозрительная.
Комментировать »
Регулярно попадаются утверждения, что “монеты мелкого номинала нужно убрать, потому что стоимость выпуска (чеканки) такой монеты превышает её номинал”. Например, в этом году в США приостановили выпуск одноцентовых монет, а в качестве объяснения – СМИ тиражируют всё то же утвержение: выпуск монеты, мол, стал дороже одного цента. Как такое может быть? Это вообще-то довольно странное утверждение.
Во-первых, монеты уже давно чеканят не для того, чтобы как-то свести мнимую стоимость процесса выпуска монеты с обозначенным номиналом. То есть, раньше, когда монеты ценились на вес серебра или золота, из которого они сделаны, что-то подобное можно было бы говорить. Но не в современном случае, когда упомянутые монеты принимают не по весу (да, сейчас тоже выпускаются так называемые “инвестиционные монеты” из драгоценных металлов, но речь про обычные монеты для оборота).
Во-вторых, необходимо учитывать, что, при условии хождения наличных денег, номинальная стоимость монеты “работает” много раз за время её обращения, а не только учитывается единожды при выпуске, как почему-то сейчас пишут. Любая транзакция с использованием данной монеты компенсирует часть стоимости её выпуска. И таких транзакций на монету приходятся тысячи и тысячи. Но, конечно, только в том случе, если есть оборот наличных денег. Однако в безналичном случае – нет и физических монет, это тоже очевидно. И, скорее всего, в этом-то реальная причина подобных заявлений про “стоимость выпуска”.
То есть, монета – это физический токен, позволяющий проводить денежные расчёты, но не непосредственный носитель стоимости (не “вес серебра”). Стоимость изготовления такого токена не обязана быть ниже обозначенного на нём номинала, потому что выпуск подобных токенов, уже давно и по определению, не является деятельностью по получению дохода от последующей реализации токенов. Но, конечно, это всё работает только в том случае, если токены предполагается реально использовать.
Комментарии (2) »
Новый