Ciencia aplicada
-¿Qué tiene de malo la ciencia aplicada? ¿Qué tiene de malo que sea rentable?
-Nada. Siempre que siga buscando la verdad, que es en lo que consiste la ciencia.Contacto (Robert Zemeckis, 1997)
-¿Qué tiene de malo la ciencia aplicada? ¿Qué tiene de malo que sea rentable?
-Nada. Siempre que siga buscando la verdad, que es en lo que consiste la ciencia.Contacto (Robert Zemeckis, 1997)
Pedazo de entrada retro-friqui que os espera
De vez en cuando me da la nostalgia ochentera, habitualmente coincidiendo con la cercanía a las vacaciones de verano (no me preguntéis por qué), y con bastante probabilidad me da en lo relacionado con esa maravillosa máquina, el ZX Spectrum, con el que se nos descubrió un nuevo mundo a tantos niños y no tan niños de la época.
Normalmente la cosa se resuelve visitando una vez más WorldOfSpectrum, echando unas partidillas a mis adorados Xeno y Manic Miner, y pensando por enésima vez por qué aquel emulador de Spectrum que me hice en 1991 para un i286 no me dio por hacerlo diez años después, que seguro que podía haberlo terminado mejor (con mucha más documentación disponible de la que yo tuve); ahora podría estar incluido en la lista de emuladores.
En fin. Esta vez me ha dado la picá por otro lado. No sé cómo he acabado pensando que podría ser curiosón el poder convertir imágenes bitmap a la apariencia que tenían las imágenes en el ZX Spectrum, y, ya puestos, hacer un plug-in para el programa de diseño gráfico GIMP que haga esa transformación. Hay alguna utilidad por ahí relacionada con la conversión de imágenes del Spectrum, pero no algo como lo que propongo en forma de plug-in de GIMP. Así que, ni corto ni perezoso, me he puesto a la tarea
Las imágenes del ZX Spectrum en su modo gráfico original, es decir, sin usar hardware/software especial que consiguiera incrementar la resolución, eran bitmaps de 256×192 píxeles, con el píxel 0,0 en la esquina inferior izquierda si mal no recuerdo (estoy escribiendo de memoria). Estos píxeles no se podían poner a ningún color concreto, sólo a apagado (0) o encendido (1), lo que suponía 256×192/8=6144 bytes de información que estaban almacenados a partir de la dirección 16384 de la RAM, es decir, justo tras los primeros 16KB de la ROM del sistema.
El color era el verdadero meollo de la historia de los gráficos de Spectrum. La paleta del ZX (de la que ya hablamos por aquí) tenía 8 colores, algunos de los cuales se observan en la esquina inferior derecha de la carcasa de la foto de arriba. Si Sir Clive Sinclair hubiera querido que pudiéramos especificar uno de esos 8 colores por cada píxel del bitmap, a tres bits por píxel, hubiera gastado un total de 256x192x3/8=18432 bytes de memoria para la imagen de pantalla, en lugar de los 6144 del blanco y negro. Definitivamente, 18KB era algo prohibitivo para la época, especialmente teniendo en cuenta que la RAM del Spectrum era de 48KB: con esa capacidad gráfica sólo hubieran quedado 30KB para variables del sistema, programas del usuario y pila de la CPU. Pero mucho peor: hubiera habido bastantes problemas de rendimiento a la hora de que una CPU Z80A a 3.47MHz direccionara los píxeles y no digamos ya de que hiciera animación, por mucho que yo siga admirando a esa CPU.
La solución no pudo ser más ingeniosa, a la par que enrevesada a la hora de su uso posterior: dividamos los 256×192 píxeles en celdas de 64 píxeles cada una (de 8×8 píxeles, para ser exactos), y asignemos un byte extra a cada celda, llamado “atributo”, que indique el color que tienen los píxeles de esa celda que estén a 0 -píxeles de “papel”- y el que tienen los píxeles que estén a 1 -píxeles de “tinta”. Además, al dividir la imagen en celdas de 8×8 podemos montar un modo texto además del modo gráfico, con sus rutinas específicas: en cada celda se podrá dibujar un carácter, pudiendo tener en pantalla 24 líneas por 32 columnas de texto. Bondadoso que es el destino: si dedicamos 1 byte al atributo de cada celda, dado que especificar un color, ya sea el de tinta o el de papel, ocupa 3 bits, nos quedan todavía 2 bits libres para jugar. Uno de ellos se dedicó al “brillo”, y otro al “parpadeo”. El esquema final de un byte cualquiera de atributo quedó así:
Lo del brillo es otra genialidad: con ese bit a 1 cualquier atributo podía indicar que los colores de papel y tinta no vinieran de la paleta original, sino de otra que contenía los mismos colores pero con más brillo -excepto el negro, que era el mismo-, es decir, que con el bit de brillo prácticamente se duplicaban los colores disponibles en la pantalla, con la salvedad de que no se podía usar un color con brillo y otro sin brillo en la misma celda.
Lo del parpadeo tenía también su enjundia: con otro bit por celda se podía hacer que el color que en ésta estaba asignado a la tinta pasara a ser mostrado en los píxeles de papel, y viceversa, intermitentemente (con una frecuencia de 1Hz, si tampoco recuerdo mal), todo eso sin necesidad de que el programador cambiara nada en memoria, puesto que lo realizaba automáticamente la ULA (uncommitted logic array), la circuitería gráfica del Spectrum. Esto del parpadeo puede parecer una tontería de poca utilidad, pero imaginad qué pasa si relleno algunas celdas de la pantalla con todos sus píxeles en tinta, otras con todos sus píxeles en papel, y activo el parpadeo: puedo montarme un cartel -con poca resolución, eso sí- que va cambiando de apariencia intermitentemente, es decir, puedo tener dos imágenes que se turnan en pantalla alegremente.
Se puede ver precisamente este efecto del parpadeo a partir del segundo 10 del siguiente vídeo, grabado del juego ya mencionado Manic Miner. También se observa claramente el típico aspecto de los gráficos del ZX Spectrum. El pedazo de borde que rodea a la imagen de pantalla estaba en principio desperdiciado: sólo se podía poner a un color, aunque si variabas ese color lo suficientemente rápido, como por ejemplo hacía la ROM mientras cargaba un programa en memoria desde la cinta de cassette, podías conseguir efectos muy curiosos.
En resumen: tenemos 6144 bytes que guardan qué píxeles de la imagen son papel y cuáles son tinta, y además otros 768 bytes a continuación de éstos, correspondientes a las 768 celdas de 8×8 píxeles que hay en una imagen de 256×192 píxeles, los cuales definen los atributos de color. El total es 6912 bytes, casi 7KB, para toda la imagen (bueno, 3 bits más si contamos el color del borde ;P), lo cual es absolutamente óptimo en términos de tamaño en memoria, funcionalidad gráfica y potencia de procesamiento. El ZX Spectrum introdujo verdaderas genialidades para su época, y este modo gráfico, por muy ridículo que nos parezca hoy en día, fue una de ellas.
Respecto al plug-in de GIMP que he escrito para transformar el aspecto de cualquier bitmap al de una imagen del ZX Spectrum no hay tanto que contar… Es fácil hacer plug-ins para GIMP, especialmente sobre sistemas Linux (GIMP también tiene versiones para otros sistemas) y programando en C. Aquí hay un tutorial que demuestra lo sencilla de usar que es la API de GIMP: te da un entorno de ejecución bastante completo donde se puede acceder a la imagen en curso.
El plug-in requiere que la imagen original sea RGB (no lo he probado pero está supuestamente preparado para trabajar también con imágenes que tengan canal de transparencia). La resolución de ésta no importa, aunque para tener una experiencia cercana a la de un verdadero ZX Spectrum es interesante reducirla primero de tamaño, concretamente a 256 píxeles de ancho (el alto da bastante igual), antes de aplicar el filtro. El plug-in se instala a sí mismo en una nueva carpeta de filtros de GIMP llamada “ZX” y no requiere ningún parámetro antes de ejecutarse. Hace la conversión directamente sobre la imagen, y usa una paleta de colores que he comprobado que es bastante parecida a la original del ZX. Incluso lo he probado sobre capturas de pantalla de emuladores del Spectrum y he validado que no cambia su contenido.
El algoritmo tiene su intríngulis porque hay que tomar algunas decisiones a la hora de reducir la gama de colores de la imagen inicial. Para empezar, se trata cada celda de 8×8 de la imagen inicial por separado (pueden sobrar píxeles en los bordes si el tamaño de la imagen original no es múltiplo de 8; éstos se mostrarán en negro). Dentro de cada celda se calcula qué color de la paleta del ZX Spectrum es más cercano al color del píxel en la imagen original, usando para ello la distancia cartesiana en el espacio tridimensional de coordenadas RGB. Tras esa conversión de color se hace un histograma para ver qué color del Spectrum aparece más frecuentemente dentro de la celda, y también cuál es el segundo más frecuente. El primero será el de tinta y el segundo el de papel -esta elección es arbitraria. Todos los píxeles de la celda que no sean del color de tinta ni del de papel serán convertidos al color de esos dos que quede más cercano en el espacio RGB. Finalmente está la decisión sobre el brillo (el parpadeo no se trata). Si ambos colores de la celda tienen el mismo brillo no hay que hacer nada. Si no, hay que cambiar uno para que tenga el mismo brillo que el otro porque sólo está permitido tener los dos con brillo o los dos sin brillo. Si uno de ellos es negro se le cambia el brillo a ése para que coincida con el brillo del otro y ya está, ya que el negro con brillo es el mismo color que el negro sin brillo. Si no es el caso, se le cambia el brillo al color que sea menos frecuente en la celda, en nuestro caso al papel. Voilà
Obviamente, se puede enriquecer este algoritmo con muchísimas cosas, principalmente para tener en cuenta la imagen completa y no por celdas separadas, ya que esto podría mejorar mucho la apariencia final al tomar decisiones que dependieran de la distribución global de los colores. Esto lo dejo para cuando tenga ganas de escribir el paper “Back to eighties: a new approach to draw ZX Spectrum bitmaps from RGB images” y mandarlo a algún sitio donde me lo rechacen inmisericordemente por irrelevante XDD (lástima que no exista ninguna IEEE Transactions on Freak Stuff indexada para el currículum ;P).
En este enlace podéis descargar el código fuente del plug-in. No he tenido ningún cuidado con la estructura ni elegancia del programa (aunque está bastante documentado), así que no respondo si se os caen las pestañas pensando cómo he podido hacer tal guarrerida programatística. Era pa jugar un ratillo
Para instalarlo en una máquina con Linux sólo hay que instalar previamente la librería de desarrollo de GIMP (libgimp-dev, típicamente en los repositorios) y luego usar la herramienta “gimptool-2.0″ desde línea de comandos como se explica en el mismo código fuente del plug-in.
Aquí dejo algunos ejemplos de lo que se puede conseguir (el último está ligeramente manipulado ;P). Podéis darle al Ctrl+ varias veces en vuestro Firefox para apreciar mejor los detalles:
|
|
Estamos viviendo en directo al desarrollo de la estrategia empresarial más antigua del mundo: crea una dependencia a tus clientes de manera que, una vez acostumbrados, necesiten tus servicios para cubrirla y así te hagan de oro. O hagan de oro a cualquier otro que también les cubra esa necesidad. Más concretamente: quítales la necesidad de instalar programas, de hacer copias de seguridad, de buscar medios de comunicación eficientes para intercambiar datos con otros, que ya te encargas tú de todo ese engorro.
Ojo, no es una crítica (salvo por el hecho de que en el límite sólo puede llevar a crear sociedades de incapacitados para valerse por sí mismos; una forma de sociedad colmena uniformizada). Lo novedoso en esta ocasión (con Google Plus, por si alguien muuuuy despistado no sabe aún de qué estoy hablando) son las formas: al mismo tiempo que emplean esa estrategia, lo hacen con una pátina de “buen rollismo” y “transparencia” que potencia aún más su capacidad de atracción. Compárese con esa misma estrategia aplicada por Microsoft en los 90 para conseguir meter Windows en cada ordenador del planeta.
Y no es una crítica porque se trata ni más ni menos de un pasito más en la evolución de la humanidad, una especie que se hace más y más dependiente de sus herramientas, por las inmensas ventajas -y comodidades- que le proporcionan, llegando hasta el límite de hacerse una con ellas. No es que el futuro sean los cyborgs, es que ya somos cyborgs y no nos hemos dado cuenta.
Yo por ahora me resisto a perder el control, al menos tratando de no hacerme dependiente de cosas que no necesito realmente (por más que me intenten convencer de que las necesito) o de cosas que se supone que debo saber manejar por mí mismo porque he sido educado para hacerlo. Puede que no tenga más remedio que llamar al albañil si se me cae una pared, pero por ahora dejaré mis datos personales en mi propia nube, montada por mí mismo; no me gusta que los guarde todos una sóla entidad (que no sea yo), especialmente cuando es una empresa privada que no puede sino estar guiada por su propio beneficio, no por tu bienestar precisamente.
Pero comprendo que sólo estoy retrasando las cosas, porque esto no tiene más que un futuro posible: la empresa se saldrá con la suya. Porque está en nuestros genes que se salga con la suya, y nosotros mismos crearemos las fuerzas sociales necesarias para que todos acaben entrando por esa necesidad que hasta hace poco nadie tenía y, lo más sorprendente, nadie parecía echar de menos…
Es lo que hay.
P.D.: Gracias a Gabriella Campbell por el enlace compartido sobre este tema.
[...] Pero en los colegios e institutos se trabajan competencias que no están relacionadas con el conocimiento. Se enseña educación en valores, que no es conocimiento académico que sea útil en la formación universitaria tradicional. Eso lleva a que algunos docentes vean que el nivel de competencia en conocimiento sea más bajo, pero eso lo perciben los profesores más veteranos. Pero yo creo que es la Universidad la que tiene que adaptarse al material que tiene.
Entrevista al Vicerrector de Estudiantes de la Universidad de MálagaComo si la “educación en conocimiento” fuera una cosa optativa, la cual poder adaptar o no porque no tuviera gran importancia, o que fuera sólo propia de “la universidad tradicional”, por no decir arcaica (lo cual obviamente es sinónimo de facha, al igual que “profesor veterano” da la impresión de serlo en este contexto).
P.D.: Otro día lo mismo nos extendemos sobre una teoría que circula por ahí últimamente sobre el daño que han hecho y están haciendo a nuestro país algunos de los que hoy son altos jefes/cargos, procedentes de esa “generación tapón” nacida en los 50/60 del siglo pasado, que ha sido llamada así porque copó puestos principales de toma de decisiones y ahora impide el paso a gente más joven aunque tenga más preparación y currículum (ejemplos palmarios no hay que buscarlos muy lejos: véanse Mariano Rajoy y José Luis Rodríguez Zapatero, por poner).
(Sí, cada vez llevo peor las barbaridades lingüísticas que se ven por ahí)
Cuando es, es, y cuando no es, no es. Igual que he criticado sin problemas la televisión de esta nuestra comunidad, por manipulada, folclórica y casposa, no me importa decir cuándo hacen cosas bien.
Ésta es una de ellas:
Se trata de varios programas que han empezado a emitir hace pocas semanas en horario de tarde, extensiones de otros previos emitidos por radio. A mí me gusta más el que aparenta un late night (el de la foto de arriba), presentado por el profesor de inglés Richard Vaughan. Son programas emitidos íntegramente en inglés sin subtítulos, salvo cuando -estratégicamente- el presentador cambia al español para explicar algún término o construcción especialmente raros.
La calidad del programa viene especialmente del presentador: empiezas escuchando construcciones simples y de repente, sin darte cuenta, estás oyendo la historia de cómo va a hacerse rico vendiendo lentes de contacto para gallinas o cómo perdió el dinero del alquiler en una fiesta por dejárselo en el bolsillo del abrigo. El hombre sigue un guión con varias construcciones lingüísticas a tratar, pero lo adereza exactamente como le da la gana, y ahí está la gracia.
El resultado es que te deja atrapado durante todo el programa, y practicando tu oído. No se nota para nada que este hombre sea de Texas, eso ya lo digo
Quizás no sean programas para empezar a aprender inglés, pero para niveles medios e incluso algo avanzados vienen de miedo. Gran idea la de Canal Sur, sí señor, y ejemplo de lo que tiene que ser una televisión pública. Que dure.
Dado lo propicio de la temporada, heme aquí dispuesto a mostrarles a los presentadores de telediario y supuestos meteorólogos de los respectivos cómo dar correctamente la temperatura de Málaga, y, por extensión, de la columna Málaga-Córdoba/Sevilla de una forma que no tengamos que tirarle tomates a la tele en Julio y Agosto cada vez que dicen una burrada.
A ver, para acertar con un 90% de probabilidades el calor (o no) que hará en Málaga y la no calor (o sí) que hará en las provincias norteñas de esta su comunidad sólo tienen que fijarse en el iconito del viento que suelen poner entrando por las columnas de Hércules:
¿Ven esa flechita cerca de los estupendos 35 graditos que han escrito bajo la provincia de Málaga y que en realidad llegaron a ser 40 a la sombra? Bueno, pues cuando señale al este como en la foto (es decir, cuando sople del otro lado) pueden decir tranquilamente que en Málaga nos torraremos a causa del terral (qué simpático poner ese nombre a un festival musical de verano, como si quisieran avisar para que la gente no viniera), ese viento de componente norte-oeste que se encajona en el Valle del Guadalhorce, se reseca, se recalienta y elimina no sólo toda la humedad disponible, sino casi casi el oxígeno con el que nos las apañamos para respirar. En esa situación, por el contrario, las provincias de arriba reciben un aire aceptable, o menos recalentado que el que suelen recibir la mayoría de los días del verano, y entonces pueden vivir. A veces, eso se extiende hacia toda la península, así que, el día de Julio en que el telediario dice “las temperaturas bajan en toda España” los malagueños pueden echarse a temblar con poca probabilidad de equivocarse, y cualquiera de arriba que baje esos días que no se extrañe de que le hayan engañado con eso de las temperaturas estables y paradisíacas.
Cuando esa misma flechita vira al lado contrario es otro cantar, lo que afortunadamente para los malagueños sucede la mayor parte del verano. Suele coincidir con los del telediario diciendo “suben las temperaturas en toda España” y volviendo a explicar por enésima vez (¿no se aburren?) que hay que ir por la sombra, beber mucha agua, evitar las horas centrales del día y, sobre todo, no plantarse a mediodía en el centro de una plaza a hacer ejercicios de aerobic vestido con un abrigo de visón.
En ese caso resulta que en Málaga el viento llega del este, es decir, del mar, bien fresquito, un gustazo. Por el contrario, las provincias de arriba lo reciben recalentado y resecado de su paso por todas las que vienen antes en el camino a oriente, con lo que es en ellas donde no se puede vivir ni casi respirar, y se te quedan las suelas hechas una con el asfalto del paso de peatones.
Ya ven, si sólo tienen que mirar una flechita para acertar la mayoría de las veces, qué trabajo les costaría.
P.D.: Creo que una regla parecida se puede aplicar a las provincias del litoral oriental español, aunque como sólo las conozco de pasada no sé si será algo tan constante como en nuestro caso. Por otra parte, en Málaga hay también excepciones, en forma de pequeños pueblos situados estratégicamente para evitar la canalización de aire del Guadalhorce.
P.P.D.: Ni soy meteorólogo ni tiempo tengo (ya me gustaría), así que me disculpan la palurdez científica de la presente entrada.
El PC con el que me hice la beca de investigación (y la tesis doctoral):
¡Un pedazo i486 DX4 a 100MHz! El cual sufrió inicialmente el inefable Windows 95, en medio el rudo pero fiable LynxOS y no recuerdo si pudo con el Windows 2000… terminando su vida útil como PC chatarra para meterle antiguas tarjetas de adquisición de datos, y jubilándose finalmente como parte del mobiliario universitario
Lagrimones como puños, oiga.
Ya hace dos días desde que puse el enunciado de un maravilloso problema de examen, tiempo más que de sobra para que cualquier alumno haya podido encontrar la solución
Entonces, ¿qué?, ¿podremos esperar que en el siguiente episodio de Battlestar Galactica 2003 el cylon femenino y atractivísimo sea descubierto?
He aquí la respuesta (siéntense cómodamente, que lo explico todo con pelos y señales):
Como se comentaba en el mismo enunciado, nos encontrábamos ante una red bayesiana no sólo simplona, sino bastante clásica:
donde las tres variables aleatorias que aparecen encerradas en cada nodo son discretas (sólo dan valores de un conjunto finito de valores), de hecho, binarias (sólo dan “verdadero” (V) o “falso” (F)), de ahí que hayamos indicado las probabilidades asociadas a los nodos de la red con una P mayúscula, utilizándose habitualmente la p minúscula para probabilidades continuas. Así, se lee “la probabilidad de que los componentes seleccionados por Baltar estén en la muestra de sangre dado que el individuo que ha donado su susodicha es cylon”.
La primera variable de la red, , nos dice si el individuo es cylon (V) o humano (F). La segunda,
, nos dice si la muestra de sangre tomada de ese individuo contiene realmente los componentes que el test podría detectar (V) o no (F). La última,
, es V si el test dice que el individuo es humano o F si dice que es cylon.
En el enunciado se nos da suficiente información para deducir las distribuciones de probabilidad asociadas a los nodos de la red. Para empezar, se nos dice que si tomamos a cualquier ciudadano de las Doce Colonias tenemos un 1% de probabilidad de haber acertado con un cylon, independientemente de todo lo demás. Eso es lo mismo que definir:
Hay que hacer notar que esto es ambiguo en su sintaxis funcional; lo correcto sería:
Pero bueno, mientras no dé lugar a confusión es mucho más cómodo trabajar con la primera forma.
En el enunciado también nos dicen que, si el individuo es realmente cylon, la probabilidad de que tenga en su sangre los componentes seleccionados por Baltar es del 1% (99% de no tenerlos), mientras que si es humano, la probabilidad de tenerlos es del 40% (60% de no tenerlos). Es decir:
Muchas veces es más visual poner esto como una tabla; yo he escogido la notación funcional para resaltar que por mucho que P tenga la semántica de una función de masa de probabilidad (condicionada), es sólo una función matemática de dos variables que cumple ciertas restricciones.
Finalmente, también nos dan la información necesaria para definir la última probabilidad. No voy a repetir esa parte del enunciado:
Las tres distribuciones de probabilidad así definidas son todas las necesarias para que la red quede completamente definida a su vez (añadidas al propio grafo de la misma, que proporciona las dependencias).
En realidad, una red bayesiana queda definida completamente por la probabilidad conjunta de sus variables, esto es, por:
Esta probabilidad puede ponerse en función de las probabilidades fundamentales de la red, utilizando la regla de la cadena de la teoría de la probabilidad condicional:
Obviamente, podríamos haber usado cualquier otra cadena, por ejemplo:
que dadas las dependencias que se observan en el grafo de la red quedaría simplificada a:
Sin embargo, esta cadena es más difícil de usar para los cálculos, ya que aparecen probabilidades condicionadas que no conocemos (p.ej., ) y que tendríamos que deducir. Para qué pegarse ese trabajo si se puede ser tan astuto como para escoger una cadena (la primera que hemos puesto) que use sólo las probabilidades conocidas
.
Muy bien, pues ya tenemos toda la información que define a la red, y, por tanto, ya podemos responder a cualquier pregunta que nos hagan sobre la red, es decir, podemos calcular el valor de cualquier probabilidad condicionada sobre variables de la misma que tenga la forma:
donde es cualquier conjunto de variables de la red, llamado el “conjunto de variables de búsqueda”, y
es cualquier otro conjunto de variables de la red que no intersecte con el primero, llamado “conjunto de variables conocidas”. Si queda alguna variable de la red que no pertenezca a ninguno, formará parte de un tercer conjunto
llamado de “variables libres”. Vamos, que
es la expresión matemática de la pregunta “¿cuál es la probabilidad de que las variables de búsqueda tengan cierto valor dado que conozco las variables conocidas?”.
Por ejemplo, la pregunta de este examen era: “¿Qué probabilidad hay de que el test realizado dé como resultado cylon dado que el individuo seleccionado es realmente cylon?”, o sea:
Como se ve fácilmente en la red, no está dada, sino que tenemos que calcularla. En esta pregunta,
,
y, por descarte,
.
Usando marginalización se tiene que:
Multiplicando ambos términos por la probabilidad de las variables conocidas (asumiendo que no es cero) se mantiene la igualdad:
Usando la regla de la cadena en el término del sumatorio de la derecha se tiene:
es decir:
Y esto está listo para usarse para calcular lo que se desea, que es , porque
es conocida: es la probabilidad conjunta de todas las variables de la red. En nuestro caso, ya hemos visto que:
).
Por otra parte, para la pregunta que nos hacen, , así que lo tenemos todo dispuesto:
(Asumiendo que , cosa que se da para cualquier valor de la variable
).
Más concretamente, queremos saber:
que puesto en números es:
Es decir, que las probabilidades de que en el siguiente capítulo veamos que se descubre a la cylon femenina y atractivísima son de alrededor del 20%. Yo que ustedes no me apostaba nada a que la descubren