Así pues tras leer este articulo se concluye que al dividir 1 entre 998001 nos va a dar una secuencia de números del estilo 0.000001002003004005006007008... [...] ...9969979990000001002003 perfectamente ordenada y "asín" sucesivamente hasta el infinito y mas allá xD (notese el 000>001>002>003>etc...)
bueno, teniendo en cuenta la cantidad de cosas sobre matematicas y curiosidades falsas q rulan por ahi no me podía quedar tranquilo si no lo comprobaba realmente, y obviamente la calculadore de Windows no me deja poner tantos decimales...
asi que he hecho un pequeño programita en java y lo voy a colgar por si a alguien le sirve pues quizas alguien algún dia quiera hacer una división indefinidamente y poder sacar el resultado por pantalla o hacerle un append a un fichero. (por ejemplo si quieres calcular cifras infinitas de PI en base a este y añadiendo un par de metodos podrias hacerlo y quitarle el record guiness al actual. (que creo que es japo) total tendrías que tener tu pc encendido por unos 200 o 250 dias y necesitarias unos 4TB de disco duro para almacenarlo :D :D
Bueno, yendo a cosas mas serias esto es una aplicación básica con el algoritmo de división por resta para hacer divisiones muy largas cuyos resultados no caben en los 64 bits del double ^^
ah! y aqui el programa! :D
public class CreaDecimal
{
public void main(String args[]){
int uno = 1;
double div = 998001;
System.out.println("");
division(uno,div);
}
public void division(double a, double b){
double aa = a; double bb = b;
int limite = 3020;
if(aa<bb){
aa=aa*10; System.out.print("0.");
}
while(limite>0){
aa = sacardigito(aa,bb);
limite--;
}
}
public double sacardigito(double a, double b){
double z; int cont=0; boolean palanca = true;
while(a<=b){
a = a*10;
System.out.print(0);
}
z=a;
while (z>=b){
z = z-b;
cont++;
}
System.out.print(cont);
return z*10;
}
}
No hay comentarios:
Publicar un comentario