C/Visual C - numeros de 1 millon de digitos

 
Vista:

numeros de 1 millon de digitos

Publicado por Gonzalo (1 intervención) el 11/11/2006 00:54:36
hola, me gustaria saber que tecnica utilizar para poder manipular cifras de 1 millon de digtos en C++ o Java, he intentado algunas cosas pero ninguna ha funcionado, espero su respuesta, gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:numeros de 1 millon de digitos

Publicado por fernando.gomez (1603 intervenciones) el 11/11/2006 01:10:12
Scheisse (¿notaron que esa es mi palabra de fin de semana? =P)! De entrada creo que primero habría que ver si existe una computadora en el mundo con capacidad para hacer eso... imagínate la memoria... Con una variable de 1 MB de memoria RAM, tendríamos 308 dígitos. En base a esto, si multiplicamos por 1024, tendríamos que mi máquina de 1GB de memoria RAM, soportaría una variable de apenas 315,392 dígitos. Scheisse!

Pues no hay más que crear una estructura con un número interminable de longs, y que los manejes a nivel posicional:

strcut Numerototote
{
long dw1;
long dw2;
long dw3;
long dw4;
...
long dwn;
};

y definas operaciones para manipular a nivel de bits. Es decir, a lo mejor los números del primer miembro tienen un valor posicional de 1. Los segundos, de 1*(2^32), el tercero, de 2*(2^32), etcétera. Un algoritmo bastante complicado.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numeros de 1 millon de digitos

Publicado por Tom (17 intervenciones) el 11/11/2006 09:59:23
Haz una búsqueda en Google, por ejemplo.
Yo he buscado arbitrary precission library y he encontrado bastantes referencias. Te paso una que ya conocía, la de GMP (C/C++):

http://www.swox.com/gmp/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numeros de 1 millon de digitos

Publicado por Fran (122 intervenciones) el 11/11/2006 17:54:56
No se si se puede manipular cifras tan grandes!!! se puede???, quizas si no necesitas manejar precision de millones, puedas "engañar"un poco manipulando los miles de arriba
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numeros de 1 millon de digitos

Publicado por Tom (17 intervenciones) el 13/11/2006 15:26:13
Si lees la página del proyecto, la primera que aparece, verás que la única limitación en la precisión es la memoria disponible.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numeros de 1 millon de digitos

Publicado por fernando.gomez (1603 intervenciones) el 13/11/2006 17:44:36
Como comentario que no creo que aporte algo a la discusión: pues claro que la limitante es la memoria. Pero para almacenar en una variable tendrías que emplear 1GB de memoria RAM, según mis cálculos ad-lib. De ahí que no creo que sea viable...

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numeros de 1 millon de digitos

Publicado por Tom (619 intervenciones) el 13/11/2006 18:19:33
1 dígito decimal (0-9) se puede representar como 4 dígitos binarios, o sea 4 bits. En formatos "empaquetados" se puede ahorrar más espacio.

1 millón de dígitos significa, en el peor de los casos, medio millón de bytes, o sea 512 KB de memoria RAM.
Creo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:numeros de 1 millon de digitos

Publicado por fernando.gomez (1603 intervenciones) el 13/11/2006 20:08:54
Uhm... eso tendría más sentido... valdría la pena revisarlo. Voy a ver en CodeProject, seguro tienen alguna clase similar. A ver qué algoritmo emplean.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar