Tablas automáticas

Es posible generar tablas a partir de variables creadas en nuestro algoritmo. La funcionalidad más básica es crear tablas a partir de listas. También es posible generar una tabla a partir de una matriz. En las siguientes secciones explicaremos ambas opciones.

A menudo, los datos que se desean proporcionar al plantear un problema se verían mejor en una tabla. Sin embargo, la edición de cada celda individual puede ser un proceso tedioso, especialmente si queremos utilizar variables para crear una tabla aleatoria. Afortunadamente, Wiris Quizzes alivia bastante la carga de trabajo al convertir fácilmente las variables de lista en celdas de una tabla. Y lo que es más interesante aún, esta característica nos permite crear tablas de tamaño variable (consulta la última sección para obtener más información al respecto).


Cuestiones básicas

Utilizar esta funcionalidad es muy sencillo. En el caso más simple, solo tenemos que colocar una variable de lista dentro de una celda de tabla (ya sea con el asistente de tablas o creando una tabla a mano en modo HTML). Vamos a ver cómo resulta.

Escribir el enunciado

Creamos una pregunta de respuesta corta y escribimos una variable dentro de una tabla de dimensión 1x1:

Crear una lista

Definimos a como una lista en la pestaña de Variables:

Ver los resultados

Ahora, cuando vamos a la pregunta, vemos que las entradas de la lista se han expandido de forma automática en celdas individuales de una fila:

Como hemos visto en este ejemplo, el comportamiento predeterminado de una lista dentro de una celda de tabla consiste en llenar la tabla hacia la derecha. Sin embargo, en muchos casos nos gustaría que la lista se expandiera hacia abajo. Esto se puede lograr simplemente añadiendo una celda por encima de la celda que contiene la variable, como en el siguiente ejemplo:

La entrada anterior, en el enunciado de la pregunta, se convierte en:


Ejemplo

Pongamos a prueba lo que hemos visto en una pregunta real.

Un ejercicio típico de probabilidad básica es responder preguntas sobre una distribución de probabilidad discreta, descrita con una tabla. Mediante el uso de variables para llenar la tabla, podemos explotar las capacidades aleatorias a nuestra disposición para crear una pregunta que será diferente cada vez que se abra. Introduce lo siguiente en el editor:

En la pestaña Variables declaramos las listas aleatorias y calculamos las respuestas:

Wiris CAS CalcMe

Nuestra pregunta es en realidad una lista de tres preguntas, por lo que tendremos que marcar la casilla de "Respuesta compuesta" y utilizar el formato apropiado en el espacio en blanco de "Respuesta correcta":

Finalmente, al visualizar la pregunta vemos la tabla expandida de esta forma:

DEMO INTERACTIVA

Tablas de tamaño aleatorio

Si queremos, podemos hacer que el tamaño de una tabla dependa de una variable. En realidad, esto tiene que ver más con saber cómo hacer una lista de tamaño variable, dado que ya hemos visto cómo las listas se pueden expandir automáticamente en tablas. Hay muchas opciones para definir dichas listas, pero solo veremos las básicas.

Ejemplo 1

Supongamos que queremos hacer que la distribución de probabilidad del ejemplo anterior tenga un número aleatorio de elementos. En tal caso, utilizaríamos el siguiente comando en la pestaña Variables:

LIVE DEMO

Como vemos, el número N anterior podría haber sido el resultado de cualquier otro tipo de cálculo (siempre y cuando este genere un número). Vemos que esto nos permite bastante creatividad a la hora de definir listas aleatorias.

Ejemplo 2

Otro tipo de lista habitual es una con elementos espaciados uniformemente entre los puntos extremos y que, por lo general, representan puntos en un intervalo de números reales. Estudiemos el siguiente comando:

LIVE DEMO

Esto significa, en palabras sencillas, "una lista de números de 0 a 3, espaciados por incrementos de 0,5".

Para convertir las listas de este estilo en aleatorias, lo único que debemos hacer es reemplazar los números de la definición por variables. En este ejemplo mantenemos el punto de inicio y los incrementos, pero aleatorizamos el punto final:

LIVE DEMO

Hay muchas otras posibilidades para definir listas aleatorias. Cualquier parámetro que se use para crear una lista se puede sustituir por una variable; nuestra creatividad nos puede llevar hasta donde queramos.

Wiris Quizzes permite representar variables de matriz como tablas. En otras palabras, las entradas de una matriz se pueden visualizar como celdas individuales de una tabla si se desea. O desde otro punto de vista, las celdas de una tabla se pueden manipular más fácilmente en Wiris CAS si las almacenamos todas en una matriz.

Cuestiones básicas

El ejemplo más básico de esta característica es en realidad muy útil. Si se coloca una variable de matriz nxm dentro de una tabla de 1x1, se crea una tabla con n filas y m columnas, cada celda con la entrada de matriz correspondiente.

Veámoslo en acción. La tabla 1x1 en el editor,

donde M se define, por ejemplo, como

produce la siguiente tabla cuando visualizamos la pregunta:

Como se ha dicho previamente, esto comporta que es posible almacenar y editar tablas arbitrarias como matrices en Wiris CAS.

Al igual que ocurre con las listas, esta característica también funciona cuando la variable de matriz tiene otras celdas a su alrededor. Un breve ejemplo sería:

y

en el enunciado de la pregunta, se ve así:

En general, si hay otras celdas presentes (al contrario de lo que ocurre al colocar una matriz en una tabla de una celda, como antes), ya debería haber espacio para la matriz en al menos una dimensión, puesto que la expansión de tablas evita la creación de celdas vacías. En el ejemplo anterior, la tabla ya tenía el mismo número de columnas que la matriz y podríamos haber añadido tantas filas como hubiésemos querido.

Por último, observa que la expansión automática de tablas evitará sobrescribir celdas existentes. Utiliza el siguiente ejemplo como guía:

con M como antes, esto no sobrescribirá la celda ocupada, sino que simplemente creará una tabla con todo M dentro de una celda:

Tablas aleatorias

De modo similar a la funcionalidad de listas, las matrices también se pueden utilizar para generar tablas aleatorias. La idea es exactamente igual que con las listas, solo debemos saber cómo declarar una variable de matriz aleatoria y la tabla resultante se adaptará automáticamente.

Para declarar una matriz aleatoria, debemos familiarizarnos con la sintaxis de tipo "lista de listas" para matrices. Es muy sencillo, cada lista entre corchetes es una fila de la matriz:

Para crear una tabla, también podríamos utilizar llaves {} en lugar de corchetes. Sin embargo, hay que tener en cuenta que el objeto resultante de Wiris CAS, en este caso, será una lista de listas y no una matriz.

Vamos a probarlo en el editor de preguntas, añadiendo aleatoriedad con la ayuda de la declaración de listas por comprensión:

LIVE DEMO

Si colocamos N como en el primer ejemplo de esta página, obtendremos una tabla con entradas enteras aleatorias, con m filas y n columnas, donde n y m son también números al azar.

Una forma más sencilla de hacer una matriz aleatoria puede bastar en ciertos casos, por ejemplo:

LIVE DEMO

nos da una matriz de tamaño fijo, pero con una entrada variable. De nuevo, las posibilidades para declarar matrices aleatorias son tantas como nuestra creatividad permita.