5 votos

¿Puede ser útil una matriz vacía?

La mayoría lenguajes de programación de la computadora tienen construcciones para administrar arreglos de discos de datos, incluyendo arreglos de múltiples dimensiones, que son claramente útiles para almacenar, manipular y modelar matrices de matrices matemáticas.

La mayoría de estas lenguas también admiten matrices vacías, es decir, unos con una longitud de cero en al menos una dimensión.

¿Son esos arreglos útiles en matemáticas, o son simplemente una sutileza programación?

¿Y tienen aplicaciones del mundo real?

6voto

mvw Puntos 13437

La cadena vacía $\epsilon \in \Sigma^*$ (el conjunto de todas las cadenas de longitud finita) en la teoría de autómatas y lenguajes formales (teórico CS). Es el elemento neutro de la concatenación de cadenas.

También si $L$ es un lenguaje formal, $L^0 = \{ \epsilon \}$ surge.

Addendum:

Yo era tal vez expuesto demasiado a C-como los lenguajes de programación que me asocian inmediatamente matrices con cadenas. :-)

El buen matemático equivalente de una matriz es, probablemente, la secuencia en algunos finito conjunto de índices $I$ en algunos de $A$:

$$ (a_k)_{k \in I} \en A^I = \left\{ a \, \left| \, \right. un : I \\right\} $$

Esa definición debe incluir la más general de las matrices asociativas, donde $I$ no es un subconjunto de a $\mathbb{N}$.

Si el conjunto de índices es el conjunto vacío $I = \emptyset$, tenemos que el conjunto vacío, como el mapa de $b : \emptyset \to \mathbb{C}$. No veo salir el uso para eso. Podemos definir la concatenación de matrices, y tiene que ser el elemento neutro. Pero hemos tenido este con las cadenas ya.

Para representar una cadena, una lista de datos de la estructura de $L = [a, b, c ]$ es suficiente, donde el acceso directo a todos los datos almacenados no es necesario, el acceso justo a la cabeza $L = [H|T]$ es suficiente y se mantiene el orden (no es sólo un conjunto), los lenguajes funcionales y de PROLOG como este modelo. Sin embargo, la recursividad es utilizado regularmente, y la lista vacía $[]$ se produce de forma natural, por ejemplo, en una cláusula que no spawn ya llamada recursiva, en las hojas de una llamada recursiva de árbol para una función que trabaja en las listas.

3voto

vadim123 Puntos 54128

Matemáticamente, es útil tener una medida negativa (no sólo positiva) longitud. Entonces, podemos hacer las cosas, teniendo en cuenta los arreglos de discos $A,B$, definir $C$ que la matriz más grande que está de acuerdo con $A$ y $B$ para todas las entradas (acuerdo de la primera entrada hacia adelante). Si $C$ no puede estar vacío, esta definición no se puede hacer.

1voto

Michael Hardy Puntos 128804

Si usted está hablando acerca de las aplicaciones en la programación de computadoras, supongamos que inicializar una matriz $A$ para el conjunto vacío, y luego, en algún punto en el programa, que puede ser alcanzado en varias ocasiones, hacer una operación que pone en común la $n\times k$ matriz $A$ $n\times\ell$ matriz $B$, donde los valores de ambas cambio, mientras que el programa es llegar ejecutado, para obtener el $n\times(k+\ell)$ matriz $[A, B]$.

Me imagino que de ser útil.

Como por su utilidad en matemáticas: no me sorprendería si en algunas situaciones es útil, pero no sé cuales son.

1voto

Adam Puntos 111

En la programación es útil para el Objeto Nulo Patrón. Esto simplifica el uso de funciones al ordenar que siempre devuelve un valor no nulo. Los valores Null en la programación de un problema que no se eliminan las referencias sin causar un error en tiempo de ejecución como señalan literalmente nada (aparte de ruby)

por ejemplo, Con la función de getValues() devuelve un array vacío cuando no hay ningún resultado

for (Integer value : getValues()) {
}

por ejemplo, Con la función de getValues() devuelve NULL si no hay ningún resultado nos obliga a hacer una comprobación adicional y complica nuestro código

Collection<Integer> values = getValues();
if (values != null) {
  for (Integer value : values) {
  }
}

0voto

David Young Puntos 101

En la categoría de Conjunto, el conjunto vacío es el único objeto inicial. He encontrado este ejemplo, junto con el hecho de que todos los uno de los elementos de conjuntos en la terminal de objetos de Set, útil en la comprensión inicial y terminal de los objetos en general.

También, es posible construir objetos útiles usando nada más que el vacío y el conjunto de operaciones básicas de la teoría de conjuntos: Conjunto teórico definición de números naturales

Existen importantes diferencias entre los conceptos de matrices y de conjuntos (sets no tienen ningún orden y no contienen duplicados), sino un conjunto vacío todavía podría considerarse como análoga en cierto modo a un array vacío, ya que son las dos colecciones que no contienen elementos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X