CyM98

<< Números no enteros en otras bases >>


Dificultad: Computación Matemática
Se necesitan algunos conocimientos elementales de Computación y de Matemática.

Lecciones anteriores:

Bases de Numeración Computación Matemática

 
Google
Web www.oma.org.ar


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

0,2304=0+ 2/10 + 3/100 + 0/1000 + 4/10000 = 0+ 2*10-1 + 3*10-2 + 0*10-3 + 4*10-4
123,45=1* 100 + 2 * 10 + 3 + 4/10 + 5/100 = 1*102 + 2 *101 + 3 + 4*10-1 + 5*10-2

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:

0,1012 = 0+ 1*2-1 + 0*2-2 + 1*2-3= 0+1/2+0+ 1/8 = 5/8 = 0,625
0,02103 = 0+ 0*3-1 + 2*3-2 + 1*3-3 + 0*3-3= 2/3+0+ 1/9 =0,7777...
A7,F116=10*16+7+15/16+1/256= 167,94140625

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 :

1,1111...4=1+1/4+1/42+1/43+1/44+... = 1/(1-1/4) = 1/(3/4) = 4/3 = 1,333...

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

0,99999999999........

Este NO es "el número anterior a 1" ni nada que se le parezca. Este número ES 1.

0,99999999999........=1

Una "demostración" para convencerse de que esto es cierto es llamar

n=0,99999999999........

entonces al multiplicar por 10 obtenemos

10n=9,999999999.........=9+0,9999.....=9+n

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

1,11111.....2=2
10,0033333....4=10,014=4,025
12,555.....6=126+16=136=9

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

0,89*7=6,23 (me quedo con el 6, sigo con el 0,23)
0,23*7=1,61 (me quedo con el 1, sigo con el 0,61)
0,61*7=4,27 (me quedo con el 4, sigo con el 0,27)
0,27*7=1,89 (me quedo con el 1, sigo con el 0,89 y a partir de acá se repite)
...

Así que 0,89=0,61416141....7

Otro ejemplo para escribir 0,75 en base 3

0,75*3=2,25
0,25*3=0,75 (¡volví al 0,75!)
0,75*3=2,25
0,25*3=0,75
...

Así que 0,75=0,202020...3

Un último ejemplo: para escribir 0,75 en base 2

0,75*2=1,5
0,5*2=1,0
0*2=0
0*2=0
0*2=0
...

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

N=0,0110101000101...2

lo multiplicamos por 10, para obtener la primera cifra en base 10, queda un 10 en lugar de cada 1

10N= 0,0(10)(10)0(10)0(10)000(10)0(10)...2

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

10N= 0,0(10)(10)0(10)0(10)000(10)50...2

Ahora el 5 se transforma en un 1 y me llevo 2 (5=2*2+1) a la cifra siguiente a la izquierda

10N= 0,0(10)(10)0(10)0(10)000(12)10...2

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í

10N= 0,0(10)(10)0(10)0(10)00(6)010...2
10N= 0,0(10)(10)0(10)0(10)0(3)0010...2
10N= 0,0(10)(10)0(10)0(10)110010...2
10N= 0,0(10)(10)0(10)(5)0110010...2
10N= 0,0(10)(10)0(12)10110010...2
10N= 0,0(10)(10)(6)010110010...2
10N= 0,0(10)(13)0010110010...2
10N= 0,0(16)10010110010...2
10N= 0,(8)010010110010...2
10N= (4),0010010110010...2

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:

  1. Escribir un programa que permita pasar un número real escrito en una base a otra.
  2. Sea N el número que se obtiene poner un 1 en las cifras decimales en posiciones que corresponden a números primos y un cero en la de los números compuestos
     
              111111111122222222223...
         123456789012345678901234567890...
    N= 0,011010100010100010100010000010...

    Demostrar que N no es periódico, ni tiene una cantidad finita de cifras distintas de cero.

  3. ¿Es posible encontrar un número real que al escribirlo en base 5 tenga una cantidad finita de cifras decimales pero que al escribirlo en base 10 tenga una cantidad infinita?
  4. Cuenta la leyenda que al inventor del ajedrez el rey le ofreció el premio que quisiera, pero este sólo pidió que pusieran un grano de arroz en el primer casillero, dos en el segundo, cuatro en el tercero y el doble en el siguiente y así hasta completar el tablero (8x8). Calcular la cantidad de granos de arroz que debería haber recibido (con todas sus cifras exactas). Ver que es mucho arroz.

Lecciones siguientes:

 Base factorial y otras parecidas Computación Matemática

 


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.

¿Cuál es tu calificación general de esta clase?

No entendí nada   Mala   Regular   Buena   Muy buena

El contenido de esta clase te resultó:

Nuevo   Conocido en parte   Conocido

El contenido de esta clase te pareció:

Difícil   Regular   Fácil

Los problemas de esta clase te parecieron:

Difíciles   Regulares   Fáciles

Comentarios, preguntas, sugerencias:

Nombre y apellido (opcional):

E-mail (opcional):

    


< OmaNet  < Curso CyM98 OmaNet - Educación Interactiva
   
www.oma.org.ar/omanet | omanet@oma.org.ar
mensajes: webmaster@oma.org.ar
buy alcohol duty free buy duty free cigarettes online duty free cigars australia order cosmetics online buy duty free perfumes where to buy tobacco online uk