Re:Zero Codexery

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,数组下标从1开始,因为它们被设计为高级编程语言,因此必须与早于零的发明很久的通常序数相对应。而一些编程语言,如Ada、ALGOL 60、PL/I,允许为每个索引指定任意下界。Pascal允许数组的范围为任何序数类型(包括枚举类型),Ada允许任何离散子类型。APL允许在运行时通过编程将索引原点设置为0或1。一些较新的语言,如Lua和Visual Basic,出于相同原因采用了相同约定。零是最低的无符号整数值,是编程和硬件设计中最基本的类型之一。因此,在计算机科学中,零常被用作许多数值递归的基例。计算机科学中的证明和其他数学推理通常从零开始。基于这些原因,在计算机科学中,从零而非一开始编号并不罕见。如果数组用于表示循环,使用模函数获取索引很方便,这可能导致零。

More in 力量与神器

Elsewhere in Re:Zero

发现错误?

读者更正将直接进入我们的审核队列。 建议修改 · 本网站内容来源说明

评论

加载中…
在交互式百科全书中打开 →