elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
12 Febrero 2012, 22:11  

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

Desconectado Desconectado

Mensajes: 41


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: 581


Cuando me afeito, recuerdo porque me dejo barba.


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

¡¡¡Feliz año nuevo!!!
booler

Desconectado Desconectado

Mensajes: 41


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: 581


Cuando me afeito, recuerdo porque me dejo barba.


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

¡¡¡Feliz año nuevo!!!
booler

Desconectado Desconectado

Mensajes: 41


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: 581


Cuando me afeito, recuerdo porque me dejo barba.


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

¡¡¡Feliz año nuevo!!!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines