página de par y danza

This commit is contained in:
sejo 2021-06-07 20:18:03 -05:00
parent d92891c777
commit 6f080ac12c
5 changed files with 129 additions and 3 deletions

View File

@ -8,6 +8,11 @@ si lo prefieres, puedes seguir las (y más) actualizaciones via git:
=> https://tildegit.org/sejo/lentejanumerica repositorio git con scripts y archivos fuente
## sjm-1662d5
página nueva de {compudanzas}
=> ./par_y_danza.gmo {par y danza}
## sjm-1662d4

View File

@ -5,10 +5,20 @@
<title>🧆 ln: updates en el sitio</title>
<author><name>sejo</name></author>
<generator>a mano</generator>
<updated>2021-06-06T12:00:00Z</updated>
<updated>2021-06-07T12:00:00Z</updated>
<link href='https://quesomango.neocities.org/actualizaciones.xml' rel='self'/>
<link href='https://quesomango.neocities.org/actualizaciones.html' rel='alternate'/>
<entry>
<id>https://quesomango.neocities.org/actualizaciones.html#sjm-1662d5</id>
<title>sejmana-1662, día 5</title>
<updated>2021-06-07T12:00:00Z</updated>
<link href='https://quesomango.neocities.org/actualizaciones.html#sjm-1662d5' rel='alternate'/>
<summary>
páginas de par y danza
</summary>
</entry>
<entry>
<id>https://quesomango.neocities.org/actualizaciones.html#sjm-1662d4</id>
<title>sejmana-1662, día 4</title>

View File

@ -2,7 +2,7 @@
materializando ciencias computacionales en cuerpxs humanxs y coreografía.
mi principal línea de exploración de {non e-computers}.
línea de exploración de computadoras no electrónicas ({non e-computers}).
# las danzas
@ -14,10 +14,12 @@ nos volvemos un registro de corrimiento (shift register) síncrono para almacena
=> ./ciclo_de_memoria.gmi {ciclo de memoria}
## paridad-nza
## par y danza
estrategia básica para detectar posibles errores de transmisión / recepción de una secuencia binaria.
=> ./par_y_danza.gmi {par y danza}
## danzas compuertas
en la que nos convertimos en red de compuertas lógicas para resolver en conjunto operaciones aritméticas o lógicas.
@ -179,5 +181,6 @@ el taller consiste en 6 sesiones de 2 horas de duración cada una
=> ./d-turing.gmi {d-turing}
=> ./logiteca.gmi {logiteca}
=> ./non_e-computers.gmi {non e-computers}
=> ./par_y_danza.gmi {par y danza}
=> ./talleres.gmi {talleres}
=> ./tiempo.gmi {tiempo}

View File

@ -45,6 +45,7 @@ este es mi archivo paquetes.scm:
"netsurf"
"lagrange" ; gemini
"bombadillo" ; gemini / gopher
"python-vf-1" ; gopher
; programming
"make"
@ -68,6 +69,7 @@ este es mi archivo paquetes.scm:
"rsync"
"bash-completion"
"adb"
"bc" ; calculator
;misc
"vinagre" ; vnc viewer

106
src/par_y_danza.gmo Normal file
View File

@ -0,0 +1,106 @@
# par y danza
estrategia básica para detectar posibles errores de transmisión / recepción de una secuencia binaria, en modalidad {compudanzas}.
implementamos el cómputo y detección de la llamada paridad: dada una secuencia de dos tipos de símbolos, ¿la cantidad de símbolos de uno de esos tipos, es par o impar?
# componentes
usaremos el concepto de estados y tiempos discretos.
## participantes
necesitamos al menos dos personas:
* transmisora de secuencia
* calculadora de paridad
## movimientos
necesitamos un alfabeto de dos movimientos:
* un movimiento "alto"
* un movimiento "bajo"
y un conteo de tiempos discretos.
cada uno de esos tiempos que contiene a un movimiento, lo podemos considerar un "bit": unidad mínima de información.
para transmitir información más compleja, necesitamos varios "bits": una secuencia de tiempos con uno de estos dos movimientos.
## estados y transiciones
en cada unidad de tiempo, estamos ya sea en el estado que corresponde al movimiento alto, o en el que corresponde al movimiento bajo.
inicialmente estamos en el movimiento bajo.
tenemos dos tipos de transiciones:
* continúa: sigue en el mismo estado
* invierte: cambia al otro estado
# guía
## cálculo de paridad
de acuerdo al mensaje binario a transmitir, en cada tiempo la persona transmisora envía uno de los dos movimientos posibles.
cuando la cantidad de movimientos que envía en una transmisión son 8, estará enviando un "byte".
la persona calculadora inicialmente está en el movimiento bajo.
en cada tiempo de transmisión, la persona calculadora ha de actuar de la siguiente forma:
* si el movimiento transmitido es bajo, ella ha de continuar su movimiento.
* si el movimiento transmitido es alto, ella ha de invertir su movimiento.
al concluir la transmisión, la persona calculadora habrá terminado:
* en el movimiento alto si la cantidad de movimientos altos transmitidos fue impar.
* en el movimiento bajo si la cantidad de movimientos altos transmitidos fue par
comprobemos que sí sea así, con secuencias de diferente longitud y paridad.
## detección de error con paridad
### conceptos
el estado en el que terminó la persona calculadora puede llamarse el bit de paridad.
un aspecto interesante y no obvio de este sistema, es que si este bit de paridad se agrega a la secuencia original para formar una nueva secuencia completa, entonces la cantidad total de movimientos altos siempre será un número par:
* cuando la cantidad era impar (por ejemplo, 3), el bit de paridad es alto, y al sumarse da un total par (por ejemplo, 4)
* cuando la cantidad era par (por ejemplo, 2), el bit de paridad es bajo y no se suma al total, que queda par (por ejemplo, 2)
### actividad
después de calcular localmente la paridad de la secuencia a transmitir, podemos pasar a transmitir a mayor distancia la nueva secuencia con el bit de paridad al final:
en cada tiempo, la persona transmisora envía el movimiento correspondiente para transmitir la secuencia completa.
la persona calculadora inicialmente está en el movimiento bajo.
en cada tiempo de transmisión/recepción, la persona calculadora ha de actuar de la siguiente forma:
* si el movimiento recibido es bajo, ella ha de continuar su movimiento.
* si el movimiento recibido es alto, ella ha de invertir su movimiento.
al terminar la transmisión de la secuencia completa, revisamos el estado de la persona calculadora:
* si se encuentra en movimiento alto (paridad impar), hubo algún error en la comunicación
* si se encuentra en movimiento bajo (paridad par), probablemente no hubo error en la comunicación
probemos con secuencias de diferente longitud, a diferentes velocidades, y también a diferentes distancias.
¿llega a suceder que detectamos un error?
¿qué pasa cuando hay dos errores en la comunicación? ¿es posible que el sistema no lo detecte?
## llega aquí:
=> ./compudanzas.gmo {compudanzas}