<< Números no enteros en otras bases >> |
Dificultad: Se necesitan algunos conocimientos elementales de Computación y de Matemática. Lecciones anteriores: |
|
Resumen: En la lección previa estuvimos viendo como escribir a un número entero en otra base que no sea 10. Pero el siguiente paso es preguntarse si se puede hacer algo similar con los números con decimales ( aunque decimal suena mucho a base 10, por eso mejor llamamos en esta lección "no enteros") Ejemplos: Recordemos primero que pasa en base 10 : Por ejemplo
Esto es muy parecido a lo que pasaba con los enteros, sólo que aparecen exponentes negativos. Así que de manera análoga definimos los números en las otras bases, reemplazando el 10 por la base. Empecemos viendo algunos ejemplos:
En el segundo ejemplo aparece un número periódico, o sea que su desarrollo decimal no termina y se repite continuamente una cifra (o un grupo de cifras). Esto también pasa en las otras bases, por ejemplo :
Al cambiar de bases un número periódico puede tener una cantidad finita de cifras en la nueva base o viceversa, o ser periódico en ambas ¡o en ninguna de las dos! Para pensar: Para cualquier número periódico uno puede encontrar una base, tal que en esa base el número tiene una cantidad finita de cifras. También existen números reales que no son periódicos y tienen infinitas cifras (distintas de cero), por ejemplo Pi, Raíz(2), y también números más raros por ejemplo poner un 1 en las posiciones que corresponden a números primos y un cero en la de los números compuestos ( 0,011010100010100010100010000010... ). Demostrar que Pi no es periódico (o tiene una cantidad finita de cifras) es muy difícil, para Raíz(2) es fácil y en el otro ejemplo queda como ejercicio. En todos los casos lo importante es notar que un número es periódico o tiene un número finito de cifras si y solo si es una fracción. Además esto vale para cualquier base, no solo para base 10. El problema de 0,999...: Al empezar a trabajar uno nota algo raro que ya aparecía en base 10, el problema es el número
Este NO es "el número anterior a 1" ni nada que se le parezca. Este número ES 1.
Una "demostración" para convencerse de que esto es cierto es llamar
entonces al multiplicar por 10 obtenemos
de esta manera vemos que 10n=9+n y entonces 9n=9 y por lo tanto n=1 El problema es que al escribir un número en una base la escritura es casi única. Los problemas aparecen sólo en los números de la forma ????,?????9999999.... . Para solucionar este inconveniente uno siempre elige la forma no periódica ( para gastar menos tinta ). Esto mismo pasa en las otras bases al repetirse infinitas veces el número anterior a la base, por ejemplo
Cambiando de base: Para pasar un número entre 0 y 1 a otra base en vez de dividir varias veces hay que multiplicar. Por ejemplo para escribir 0,89 en base 7
Así que 0,89=0,61416141....7 Otro ejemplo para escribir 0,75 en base 3
Un último ejemplo: para escribir 0,75 en base 2
Así que 0,75=0,110000...2 =0,112 (porque a nadie le importan los ceros sobrantes) |
|
Otro método de cambio de
base: De una manera parecida se puede obtener un procedimiento alternativo para conseguir las cifras en base 10 de un número que uno tiene escrito en otra base. Por ejemplo usemos el número que en base 2 tiene sus cifras primas iguales a 1 y 0 en el resto, y tratemos de ver su escritura en base 10
lo multiplicamos por 10, para obtener la primera cifra en base 10, queda un 10 en lugar de cada 1
Donde encerramos entre paréntesis a las cifras ilegales Pero no está bien escrito en base 2, así que cada 10 se transforma en un 0 y me llevo 5 (10=5*2) a la cifra siguiente a la izquierda
Ahora el 5 se transforma en un 1 y me llevo 2 (5=2*2+1) a la cifra siguiente a la izquierda
Ahora el 12 se transforma en un 0 y me llevo 6 (12=6*2) a la cifra siguiente a la izquierda y sigo así
No necesitamos seguir ya que nos interesa la parte entera de 10N. Si volvemos a repetir este proceso obtenemos la segunda cifra, luego la tercera y así todas las que queramos. Sin embargo hay que tener un poco de cuidado porque el número es infinito pero al calcularlo sólo uso las primeras(porque tenemos finito tiempo, papel, memoria y paciencia) así que estamos cometiendo un error. Este error es menor que 2-13, porque sino cambiarían alguna de las primeras 13 cifras en base 2. Como 2-13= 0,00012... entonces voy a obtener las primeras 3 cifras exactas y el resto es cualquier cosa. Escribamos un programa que haga todo esto : DefLng A-Z'Todas las variables son enteras Const CifrasEnBase2 = 1000 Const CifrasEnBase10 = 300 'Ojo, puede que las ultimas esten mal Dim cifra(1 To CifrasEnBase2) 'guardo el numero en base 2 'Genero el numero For i=2 To CifrasEnBase2 cifra(i)=1'si no encuentro divisores es primo For j=2 To Int(Sqr(i)) If i Mod j = 0 Then cifra(i)=0 'No, era compuesto Exit For End If Next j Next i 'Lo paso a base 10 Print "0,"; 'continuo en la misma linea For i= 1 To CifrasEnBase10 'Multiplico por 10 For j = 1 To CifrasEnBase2 cifra(j)=cifra(j)*10 Next j 'Arreglo las cifras arrastro=0 For j = CifrasEnBase2 To 1 Step -1 cifra(j)=cifra(j)+arrastro arrastro = cifra(j)\2 'division entera cifra(j) = cifra(j) Mod 2 Next j 'lo que arrastre al final es la parte entera Print arrastro; Next i Print 'fin de linea A este programa habría que modificarlo para que controle que todas las cifras que aparecen sean las verdaderas. En general si CifrasEnBase10 < CifrasEnBase2 / 3 va a andar bien. ¿Por qué? Ejercicios:
Lecciones siguientes: |
|
La idea es que hagan los ejercicios y piensen que otras cosas interesantes se pueden hacer relacionadas con estos temas. Cuéntennos lo que consiguieron y pregunten lo que no les salió. Envíen sus preguntas, dudas, sugerencias, experiencias y propuestas. Nuestra dirección es cym98@oma.org.ar .
También nos gustaría saber tu opinión sobre esta clase. Les pedimos que se tomen unos instantes y contesten estas preguntas. Con tu ayuda podremos hacer un curso cada vez mejor.
OmaNet Curso CyM98 | OmaNet - Educación Interactiva www.oma.org.ar/omanet | omanet@oma.org.ar |
mensajes: webmaster@oma.org.ar |