miércoles, marzo 14, 2007

Escribiendo otro tutorial más.

Para aquellos que les pudiese interesar, se está haciendo un tutorial de *NIX básico en el wiki de LIDSOL. El enlace es.

http://wiki.lidsol.net/wiki/index.php?title=Introducci%C3%B3n_a_GNU/Linux.


Esta basado en el material escrito por: Kirrily Robert

Apenas está en su fase inicial, así que cualquier comentario para complementarlo será bien recibido.

martes, marzo 06, 2007

Comentario: Sobre potencias de 10 y de 2

Como saben, los prefijos kilo, mega, giga, tera antepuestos a una unidad, indican multiplos en base 10 incrementando el exponente de 3 en 3; así kilogramo indica mil gramos (10^3), megametro es un millon de metros (10^6), etcétera.

Como el byte es una unidad de medida, utilizada para indicar la unidad mínima necesaria para almacenar información representable con 8 bits, también se le anteponen prefijos para manjera magnitudes muy grandes.

Así, un kilobyte son 1000 bytes, un megabyte son 1,000,000 de bytes; sin embargo realmente esto no es así exactamente. En realidad un kilobyte se usa para redondear la cantidad exacta a la que corresponde 2^10, que es 1024 bytes (como se observa, aproximadamente 1000 unidades).

Resulta que 2 elevado a potencias multiplos de 10, nos dan valores aproximados a mil, un millon, mil millones, un millon de millones, etc. De esta forma tenemos que:

2^10 ~ 10^3, kilo
2^20 ~ 10^6, mega
2^30 ~ 10^9, giga
2^40 ~ 10^12, tera
...

En una reunión discutiendo cuantos archivos de 3.5 MB caben en un disco duro de 120 GB, salió en la plática, la relación entre el prefijo antepuesto al byte y las potencias de dos, así que mi hermano dijo que usaría el espacio de una servilleta para calcular cada una de las potencias de 2, para saber cuanto es exactamente un TB. Al ver que tendría que multiplicar 40 veces el 2 por si mismo, realmente me dió flojera siquiera pensar en hacerlo. Pero las matemáticas (particularmente las reglas de los exponentes), salieron al rescate.

Resulta que si: (a^x)*(a^y)= a^(x+y)

La meta es el TB, que es 2^40, que se puede reescribir como: (2^20)*(2^20), así que ya me ahorré la mita de las multiplicaciones menos una, porque tengo que calcular 2^20 y el resultado multiplicarlo por si mismo.

Pero 2^20 se puede calcular como: (2^10)*(2^10), así que ya me he ahorrado la mita de la mitad que necesito calcular, suponiendo que el esfuerzo fuera lineal, ya he ahorrado 3/4 del camino, solo son necesarias 12 multiplicaciones.

Ahora, 2^10 es mul facil calcular, el resultado es 1024, así que:

1,024*1,024 = 2^20 = 1,048,576 (que como se observa, es mayor a 1 000 000)
y
1,048,576*1,048,576 = 2^20*2^20= 2^40 = 1099511627776, el valor exacto de un TB.

Actualmente no parece tener mayor sentido este juego de operaciones, dado que una calculadora convencional no tiene mayor problema para calcular directamente 2^40, pero la razón de esto, es que el reto radicaba en calcular el valor usando solo papel y lápiz, actividades que siempre resultan útiles para engrasar de vez en cuando la mente.

Algunos enlaces de interes acerca del tema:

http://www.sc.ehu.es/sbweb/fisica/unidades/unidades/unidades.htm
http://whatis.techtarget.com/definition/0,,sid9_gci499008,00.html
http://www.mundodivx.com/tips.php?p=4

Etiquetas: