Zero's Ring
Соглашение о нумерации, при котором первому элементу присваивается индекс 0.
Нумерация с нуля — это способ нумерации, при котором начальному элементу последовательности присваивается индекс 0, а не индекс 1, как это обычно бывает в повседневных нематематических или непрограммистских ситуациях. При нумерации с нуля начальный элемент иногда называют нулевым элементом, а не первым элементом; «нулевой» — это искусственное слово для порядкового числительного ноль. В некоторых случаях объект или значение, которые изначально не принадлежат данной последовательности, но могут быть естественным образом помещены перед её начальным элементом, могут называться нулевым элементом. Не существует единого мнения относительно корректности использования нуля в качестве порядкового числительного (а также относительно использования термина «нулевой»), поскольку это создаёт двусмысленность для всех последующих элементов последовательности при отсутствии контекста.
- Creator
- Satella (Witch of Envy)
- Primary user
- Subaru Natsuki
- First appearance
- Arc 1: The Beginning of the End
- Nature
- Cursed Artifact / Magical Seal
- Associated curse
- Return by Death
Контекст
Нумерация последовательностей, начиная с 0, довольно распространена в математической нотации, особенно в комбинаторике, хотя языки программирования для математики обычно индексируют с 1. В информатике индексы массивов обычно начинаются с 0 в современных языках программирования, поэтому программисты могут использовать «нулевой» в ситуациях, где другие использовали бы «первый», и так далее. В некоторых математических контекстах нумерация с нуля может использоваться без путаницы, когда порядковые формы имеют устоявшееся значение с очевидным кандидатом, предшествующим первому; например, нулевая производная функции — это сама функция, полученная путём дифференцирования ноль раз. Такое употребление соответствует названию элемента, который не принадлежит последовательности, но предшествует ей: нулевая производная на самом деле вовсе не является производной. Однако, подобно тому, как первая производная предшествует второй производной, так и нулевая производная (или сама исходная функция) предшествует первой производной.
Путеводитель
Это использование следует из проектных решений, заложенных во многие влиятельные языки программирования, включая C, Java и Lisp. В этих трёх языках типы последовательностей (массивы C, массивы и списки Java, а также списки и векторы Lisp) индексируются, начиная с нулевого индекса. Особенно в C, где массивы тесно связаны с арифметикой указателей, это обеспечивает более простую реализацию: индекс ссылается на смещение от начальной позиции массива, поэтому первый элемент имеет смещение ноль. Обращение к памяти по адресу и смещению напрямую представлено в компьютерном оборудовании практически на всех компьютерных архитектурах, поэтому эта деталь проектирования в C упрощает компиляцию ценой некоторых человеческих факторов. В этом контексте использование «нулевого» в качестве порядкового числительного не является строго корректным, но является широко распространённой привычкой в этой профессии. Некоторые языки программирования, такие как Fortran или COBOL, имеют индексы массивов, начинающиеся с единицы, поскольку они были задуманы как языки программирования высокого уровня и, как таковые, должны были соответствовать обычным порядковым числительным, которые были изобретены задолго до нуля. А некоторые языки программирования, например Ada, ALGOL 60, PL/I, допускают произвольную нижнюю границу для каждого индекса. Pascal позволяет диапазону массива быть любого порядкового типа (включая перечислимые типы), а Ada позволяет любой дискретный подтип. APL позволяет устанавливать начало индекса на 0 или 1 во время выполнения программно. Некоторые более новые языки, такие как Lua и Visual Basic, приняли то же соглашение по той же причине. Ноль — это наименьшее целое беззнаковое значение, один из самых фундаментальных типов в программировании и проектировании оборудования. В информатике ноль поэтому часто используется как базовый случай для многих видов числовой рекурсии. Доказательства и другие виды математических рассуждений в информатике часто начинаются с нуля. По этим причинам в информатике не редкость нумерация с нуля, а не с единицы. Если массив используется для представления цикла, удобно получать индекс с помощью функции модуля, которая может дать ноль.
А вы знали?
- Термин «нулевой» — это искусственное слово для порядкового числительного ноль, и не существует единого мнения относительно его корректности.
- Мартин Ричардс, создатель языка BCPL (предшественника C), спроектировал массивы, начинающиеся с 0, потому что значение указателя p, используемого в качестве адреса, обращается к позиции p + 0 в памяти.
- Эдсгер В. Дейкстра утверждал в 1982 году, что индексы массивов должны начинаться с нуля, так как это более естественно представляет пустые последовательности и делает длину подпоследовательности равной верхней границе минус нижняя.
- Некоторые языки программирования, такие как Fortran и COBOL, имеют индексы массивов, начинающиеся с единицы, потому что они были задуманы для соответствия обычным порядковым числительным, которые были изобретены задолго до нуля.
More in Силы и Артефакты
Elsewhere in Re:Zero
Заметили ошибку?
Исправления от читателей сразу попадают в нашу очередь на проверку. Предложить правку · Как собираются источники для этого сайта
