2.10.02


181.- ALGORITMOS


(sin trackback, porque no mató esa onda)

El algoritmo para mejorar la cuenta de Gar: si los puntajes (y equipos) son A y B, y saca A, tenemos que la ventaja de A sobre B es Log(2^A/sqrt(2).2^B). El logaritmo es en base 2, y sqrt(x) es la raíz cuadrada de x. Si saca B, la cuenta es igual pero con sqrt(2) arriba (regla memotécnica, sqrt(2) acompaña al que tiene el saque). Cualquier imbécil, aún ignorando la resta, puede llevar a cabo estas operaciones. (Por Juninho Paulo Coghelo)

\\

Hablando en serio, la resta es una operación mala en computación, y siempre que se pueda debe ser reemplazada. Acá tienen teoría del por qué. Un ejemplo que muestra los problemas es el siguiente: se quiere calcular el promedio de A y B, esto es (A+B)/2. Tenemos tres fórmulas para la computadora:

i.- (A + B) / 2
ii.- A/2 + B/2
iii.- B + ((A - B) / 2)

Ahora, si A y B tienen el mismo signo, i.- puede dar overflow si eran grandes. La tercera puede provocar pérdida de cifras significativas, y ii.- es la más segura. Va un ejemplito numérico:

Supongamos que nuestra computadora trabaja con sólo dos cifras significativas. Sean A= 11 y B= .24

i.- da 5.5 (porque 11.24 es 11 si hay sólo dos cifras)
ii.- da 5.6 (cerca de la correcta 5.62)
iii.- da 5.2 (si nuestra máquina trunca) ó 5.7 (si nuestra máquina redondea)

Les queda como ejercicio resolver qué pasa si A y B son de distintos signos.