2010-04-08 8 views
8

En Java/C++, por ejemplo, ¿casualmente dicen que 'a' es el carácter primera de "abc", o la cero?En el sistema de indexación basado en 0, ¿las personas llaman al elemento en el índice 0 el elemento "primer" o "zeroth"?

¿Las personas dicen ambas y siempre será ambigua, o hay una convención real?


Una cita de Wikipedia sobre Zeroth artículo:

En informática, las referencias de matriz también a menudo comienzan a 0, por lo que los programadores de computadoras podría utilizar cero en situaciones en las que otros pueden utilizar en primer lugar, y así sucesivamente .

Esto parece apoyar la hipótesis de que siempre va a ser ambiguo.


Gracias a Alexandros Gezerlis (see his answer below) para encontrar esta cita, a partir Cómo Pensar como un Informático: El aprender con Python por Allen B. Downey, Jeffrey Elkner y Chris Meyers, chapter 7:

La primera letra de "banana" no es a. A menos que seas un científico informático. Por razones perversas, los informáticos siempre comienzan a contar desde cero. La 0ª letra (zero-eth) de "banana" es b. La 1ª letra (one-eth) es a, y la 2ª (dos-eth) letra es n.

Esto parece sugerir que nosotros, como informáticos, deberíamos rechazar la semántica natural de "primero", "segundo", etc. cuando se trata de sistemas de indización basados ​​en 0.

Esta cita sugiere que tal vez hay SON reglas oficiales para ciertos idiomas, por lo que he hecho esta pregunta [language-agnostic].

Respuesta

25

Es el primer carácter o elemento de la matriz, pero está en el índice cero.

+0

Muy bien puesto! – fastcodejava

4

Probablemente subjetivo pero lo llamo el primer elemento o elemento cero. Es la primera y, aparte de las leyes de robótica de Isaac Asimov, ni siquiera estoy seguro de que zeroth sea una palabra real :-)

Por definición, cualquier cosa que preceda a la primera se convierte en la primera y saca todo lo demás en uno .

+0

Es '[subjetivo] 'hasta que alguien señala una recomendación autorizada que gobierna de una forma u otra. Luego se convierte en '[mejores prácticas]'. – polygenelubricants

6

citar this wikipedia article:

Mientras que el término "cero" no es en sí es ambigua, se crea ambigüedad de todos los elementos posteriores de la secuencia cuando carecen de contexto, ya que se les llama "primera "," segundo ", etc. entran en conflicto con el significado normal de esas palabras cotidiano.

Así que yo diría "primero".

+0

¡Maldito buen punto! Además, "zeroth" es incómodo y suena como un impedimento del habla. –

9

El término "primero" no tiene nada que ver con el índice absoluto de la matriz, sino simplemente su posición relativa como el elemento indexado más bajo. Turbo Pascal, por ejemplo, permite índices arbitrarios en matrices (digamos del 5 al 15). El elemento ubicado en la matriz [5] aún se denominará primer elemento.

+0

No ** Turbo ** Pascal, solo Pascal :) –

1

Depende de si usted es un fan de la serie robot de Isaac Asimov.

2

Definitivamente primero, nunca escuché zeroth hasta hoy!

2

Estoy de acuerdo con la mayoría de las respuestas aquí, que dicen primer carácter que se encuentra en el índice cero, pero sólo para el registro, la siguiente es del libro de Allen Downey "Python para Diseño de Software":

Así b es la 0ª letra ("zero-eth") de 'banana', a es la 1ª letra ("one-eth"), y n es la 2ª ("two-eth").

Por lo tanto, se quita la ambigüedad, ya sea usando:

a) un número y luego "th", o b) una palabra y luego "-eth".

+0

+1 para la cotización. Vamos a obtener más decisiones de una manera u otra de fuentes no autorizadas, al menos creíbles. – polygenelubricants

2

Los estándares C y C++ dicen "elemento inicial" y "primer elemento", es decir, lo mismo. Si recuerdo que no soy ambiguo, digo "inicial", "zeroth" o "primero contando desde cero". Pero normalmente digo "primero". Esa cosa de plátano es una exageración humorística o un poco loco (sospecho que lo primero, es solo una forma de explicar 0-indexación). No creo que conozca a nadie que realmente diga "primero" en el sentido de "índice 1 de una matriz indexada en 0" a menos que primero hayan dicho "zeroth" en el mismo párrafo para dejar en claro lo que significan.

+0

Tenga en cuenta que la cita utiliza "one-th" y "1th" en lugar de "first" y "1st". De hecho, me gusta este sistema; cualquier cosa que se mueva hacia la precisión matemática y lejos de las ambigüedades/irregularidades del lenguaje natural es algo bueno para mí. – polygenelubricants

+0

Claro, pero tampoco conozco a nadie que diga "one-th". Creo que solo lo están presentando de forma hipotética, como una caracterización de lo que sería * indexación * de matriz basada en 0, si se utilizara como un conjunto de ordinales en el habla. –

+0

@ Steve Jessop - En cuanto a la cuestión de la exageración cómica o que es hipotético: tal vez. Por otro lado, en una página diferente, el autor usa la misma notación de manera práctica, por lo que sugiere que lo considera una terminología (posiblemente de su propia invención): "El operador [n: m] devuelve la parte de la cadena del carácter 'n-eth' al carácter 'm-eth', incluido el primero pero excluyendo el último ". –

Cuestiones relacionadas