G
Guest
Gast
Hallo,
wie kann ich effizient zwei sehr große Basen/Exponenten miteinander vergleichen?
Beispiel:
Da man das mit keinem Taschenrechner berechnen kann, hab ichs mit der schnelle Exponentiation versucht:
Allerdings dauert das immer noch ewig. Muss ich den Wert überhaupt berechnen oder kann ich auch anders feststellen welche Basen/Exponenten die größere Zahl ergeben?
wie kann ich effizient zwei sehr große Basen/Exponenten miteinander vergleichen?
Beispiel:
343443^534543 und 433453^234323
Da man das mit keinem Taschenrechner berechnen kann, hab ichs mit der schnelle Exponentiation versucht:
Code:
public static BigInteger berechne(int b1, int e1){
BigInteger two = BigInteger.valueOf(2);
BigInteger x = BigInteger.ONE;
BigInteger e = BigInteger.valueOf(e1);
BigInteger b = BigInteger.valueOf(b1);
while(!(e.compareTo(BigInteger.ZERO) == 0)){
while(e.mod(two).compareTo(BigInteger.ZERO) == 0){
e = e.divide(two);
b = b.pow(2);
}
e = e.subtract(BigInteger.ONE);
x = x.multiply(b);
}
return x;
}
Allerdings dauert das immer noch ewig. Muss ich den Wert überhaupt berechnen oder kann ich auch anders feststellen welche Basen/Exponenten die größere Zahl ergeben?