Foros del Web » Programación para mayores de 30 ;) » Java »

Como traduzco este método Con la clase BigInteger

Estas en el tema de Como traduzco este método Con la clase BigInteger en el foro de Java en Foros del Web. Hola, tengo un método que multiplica arreglos, pero necesito trabajar con números inmensos, así que estuve buscando y encontre que existe una clase llamada BigInteger, ...
  #1 (permalink)  
Antiguo 15/06/2012, 17:45
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 3
Pregunta Como traduzco este método Con la clase BigInteger

Hola, tengo un método que multiplica arreglos, pero necesito trabajar con números inmensos, así que estuve buscando y encontre que existe una clase llamada BigInteger, el hecho es que he tratado de implementarla en el método que actualmente maneja el tipo de datos primitivo Long, así que si alguien tiene idea de como hacerlo le agradecería mucho

Método

Código Java:
Ver original
  1. public long[] multiplicarArrays(long[] arreglo1,long[] arreglo2, int tamaño){
  2.           //Creamos el arreglo que tendrá el resultado
  3.           //con el tamaño del arreglo 1 que se supone que tiene los mismos elementos que el arreglo2
  4.           long arrayRes[] = new long[(tamaño)];
  5.           long mult=1;
  6.           int cont=arrayRes.length-1;
  7.           /*
  8.            * ciclo basado en el método burbuja
  9.            * lógica:
  10.            * EJM: 521*32 = (2*1*1)+(2*2*10)+(2*5*100)+(3*1*10)
  11.            * +(3*2*100)+(3*5*1000) = 16672
  12.            */
  13.           for (int i=arreglo1.length-1;i>=0;i-- )
  14.           {
  15.               long Por10=1;
  16.                
  17.               for(int j=arreglo2.length-1;j>=0;j--)
  18.               {
  19.                  
  20.                   if(j==arreglo2.length-1){
  21.                   Por10*=mult;
  22.                   }
  23.                   arrayRes[cont]+=(arreglo2[i]* arreglo1[j] * Por10);
  24.                  
  25.                   System.out.println(String.valueOf(arreglo2[i])+"*"+String.valueOf(arreglo1[j])+"*"+String.valueOf(Por10)+"="+String.valueOf(arrayRes[cont]));
  26.                  
  27.                   Por10*=10;
  28.                  
  29.               }
  30.              
  31.               //Incrementamos variables
  32.              
  33.               mult*=10;
  34.           }
  35.           arrayRes= separarDigitos(arrayRes[cont], arrayRes.length);
  36.            
  37.           return arrayRes;
  38.       }

Ahora como sería en vez de Long que me calcule en BigInteger.
  #2 (permalink)  
Antiguo 16/06/2012, 03:15
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Como traduzco este método Con la clase BigInteger

Cambia todos los long por BigInteger y cambia las operaciones *, /, +, - etc por los métodos que tiene BigInteger para ello (multiply(), divide(), add(), substract(), etc) http://docs.oracle.com/javase/6/docs...igInteger.html

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 16/06/2012, 10:38
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Como traduzco este método Con la clase BigInteger

si yo estaba viendo eso, pero por ejemplo, como hago para hacer esta expresion?

variable1+=variable2*variable3*variable4;

lo hize así

variable1.add(variable2.multiply(variable3.multipl y(variable4)));

pero me tiraba un error =S
  #4 (permalink)  
Antiguo 16/06/2012, 10:55
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Como traduzco este método Con la clase BigInteger

¿qué error?
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 16/06/2012, 11:22
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Como traduzco este método Con la clase BigInteger

algo sobre incopatible types, debe ser que no puedo multiplicar int, con biginteger??

bueno no sé estoy lellendo lo que me envió a ver que cojo, como escribirías voz la expresión anterior que puse de ejemplo?
  #6 (permalink)  
Antiguo 16/06/2012, 13:30
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: Como traduzco este método Con la clase BigInteger

Pues la expresión está bien, pero deben ser todo con BigInteger, no uses int para esas funciones. No sé los tipos de variable1, variable2, etc puesto que no los has puesto, pero si miras la api del enlace que te pasé. verás que esas funciones (multiply() y add() admiten BigInteger como parámetro y no int ni otros.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #7 (permalink)  
Antiguo 16/06/2012, 13:37
 
Fecha de Ingreso: marzo-2012
Mensajes: 75
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Como traduzco este método Con la clase BigInteger

muchas gracias !! =)

Etiquetas: biginteger, clase, metodo, traducir, arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:27.