yopyoopyop
Messages postés6Date d'inscriptionlundi 8 octobre 2007StatutMembreDernière intervention11 novembre 2007
-
10 nov. 2007 à 14:49
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 2016
-
1 avril 2008 à 15:12
Bonjour à tous,
J'ai besoin de trouver un algorithme mieux optimisé pour pouvoir diviser un nombre par un autre. Les nombres sont contenu dans des tableaux où chaque cellule contient un chiffre (ex.: 123 =
{1,2,3}). Voici le mien, qui est vraiment très lent... :
public static int[] hugeDiv(int []n1 , int[] n2 ){
int[]zero = new int[1];
zero[0]=0;
int[] un = new int[1];
un[0]=1;
if(isEqual(n1,n2) == true) return un;
if(isSmaller(n1,n2) == true) return zero;
int[] resultat = new int[n1.length];
int[] tmp;
int[] n2foisj;
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 10 nov. 2007 à 22:32
Salut:
Je me rappelle dans mes études en particulier la matière d'architecture des microprocesseurs il y a plusieurs alogorithmes pour faire la division et les autres opérations arithmétiques.
avec cette methode tu peut découper tes nombres de maniere a laisser le circuit de calcul du proccesseur faire les divisions et ensuite faire les multiplications et additions pour trouver ton resutat.
cs_jojolemariole
Messages postés519Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention19 décembre 201625 1 avril 2008 à 15:12
Sinon, pour info, il existe les BigInteger, qui fonctionnent très bien.
division entiere :
BigInteger a = new BigInteger("123456789123456789123456789123456789");
BigInteger b = new BigInteger("123456789123456789123456789123456789");
BigInteger c = a.divide(b);
division avec reste :
BigInteger a = new BigInteger("123456789123456789123456789123456789");
BigInteger b = new BigInteger("123456789123456789123456789123456789");
BigInteger[] result = a.divideAndRemainder(b);
BigInteger d = result[0];
BigInteger r = result[1];
Cependant je doute qu'ils soient extrêmement optimisés, en particulier ils sont immuables, comme les String.