elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
20 Marzo 2010, 16:56  


Temas destacados: Últimos eventos sobre seguridad/inseguridad


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderador: Eternal Idol)
| | |-+  Empezando con el sistema binario
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Empezando con el sistema binario  (Leído 552 veces)
booler

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Empezando con el sistema binario
« en: 22 Noviembre 2009, 09:12 »

Hola, esotoy empezando a programar en C y la profesora me ha pedido un trabajo:

Llamaremos “ceros finales” de un número entero a los que aparecen posteriormente a la última
cifra no nula, por ejemplo los tres últimos del número 3056000 o los cuatro últimos del número en
binario 1010000(2 . Son muy relevantes en cuanto a la magnitud del número.
El factorial (!) de un número entero positivo (el producto de todos los números naturales desde 1
hasta el propio número, por ejemplo, 5!=1*2*3*4*5=120) crece desmesuradamente cuando crece el
número.
Estudie cómo puede calcularse el número de ceros finales del factorial de un entero positivo cuando
este factorial se expresa en decimal y cuando se expresa en binario.


He probado a calcular el factorial de unos cuantos numeoros tanto en binariao como en decimal, contar el numero de ceros de cada numero, mirar como incermentan... pero no veo ninguna relacion, alguien me sugiere algo???


Muchas gracias a todos.
« Última modificación: 22 Noviembre 2009, 09:46 por booler » En línea
do-while

Desconectado Desconectado

Mensajes: 179


Ver Perfil
Re: Empezando con el sistema binario
« Respuesta #1 en: 22 Noviembre 2009, 10:58 »

Hola!!!

En base 2 es muy sencillo. Pasas el numero a base 10. Y ahora por cada vez que 2 divida a uno de los factores que forman el factorial tendras un cero final, ya que en base 2, multiplicar por dos significa añadir un cero al final del numero que tenias.

Al trabajar en base 10, el algoritmo es parecido, solo que tendras que tener en cuenta que tendras que distinguir algun caso mas (no es tan directo aunque si igual de sencillo).

Piensalo y si no lo sacas vuelve a postear.

Hasta luego!!!
En línea

"Nunca pertenecería a un club que admitiera como socio a alguien como yo". Groucho Marx
booler

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: Empezando con el sistema binario
« Respuesta #2 en: 22 Noviembre 2009, 11:23 »

no te he entendido nada, jejeje.

pero acabo de hacer un programilla con el vi de linux, y aun poniendo la variable como double, nu alcanza mas precision que la calculadora de windows
En línea
do-while

Desconectado Desconectado

Mensajes: 179


Ver Perfil
Re: Empezando con el sistema binario
« Respuesta #3 en: 22 Noviembre 2009, 16:01 »

Paso por paso. Si quiero saber cuantos ceros finales tiene el numero 4! en binario que es lo que hago:

4! = 4·3·2·1;

2|4 -> Por lo menos tiene un cero final.
4/2 = 2 ------> 2|2 ->Ahora sabemos que por lo menos tiene dos ceros.
2/2 = 1------ > 2 no divide a uno ----->Ya hemos terminado con el 4.

2 no divide a 3------> Hemos terminado con el 3

2|2 -> Ya tenemos al menos tres ceros finales.
2/2 = 1------> 2 no divide a 1------>Terminamos con el 2

2 no divide a 1---->Terminamos con el 1.

Ultimo recuento de ceros: 3 ceros.

Ahora si lo compruebas 24(10 = 11000(2

Que era lo que buscabamos.

Ahora te toca pasarlo a codigo y si quieres, una vez que lo tengas, utilizando arrays para almacenar los datos que vas obteniendo, puedes optimizar el calculo de los ceros.

Por supuesto, el caso decimal te corresponode a ti. Con unas pocas modificaciones  a lo anterior ya lo tienes hecho.
En línea

"Nunca pertenecería a un club que admitiera como socio a alguien como yo". Groucho Marx
booler

Desconectado Desconectado

Mensajes: 37


Ver Perfil
Re: Empezando con el sistema binario
« Respuesta #4 en: 22 Noviembre 2009, 19:34 »

Muchiiiiiissssiiiiiiiiimas gracias!!!!!!!!!!!!!!!

me costo entenderte, pero consegui hacer la relación y una vez la habia sacado me puse a releer lo que me habias puesto y estaba totalmente correcto.

pero tengo ahora una duda, parece que no te costo mucho llegar a la solucion, ¿habias trabajado alguna vez sobre el tema o algo?????

muchisimas gracias.
En línea
do-while

Desconectado Desconectado

Mensajes: 179


Ver Perfil
Re: Empezando con el sistema binario
« Respuesta #5 en: 22 Noviembre 2009, 19:41 »

No, nunca habia trabajado, pero es sencillo en cuanto entiendes lo que es una base de nueracion y la numeracion posicional.
En línea

"Nunca pertenecería a un club que admitiera como socio a alguien como yo". Groucho Marx
Páginas: [1] Ir Arriba Imprimir 
Ir a:  





Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Yashira.org    Videojuegos    indetectables.net    Seguridad Informatica Colombia    Indejuegos    Internet móvil

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec    Seguridad Wireless    Underground México    Biblioteca de Seguridad

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC