2010-03-22 11 views
6

Jak pracować z dużymi liczbami w PHP?Jak pracować z dużymi liczbami w PHP?

takich jak

(6*27^0+17*27^1+11*27^2+18*27^3+25*27^4+4*27^5)^65537 
+0

myślę, że ten numer będzie pasuje do normalnej int. Okay, to było zanim położysz^65537 na końcu. –

+1

Sprawdź http://stackoverflow.com/questions/211345/working-with-large-numbers-in-php –

Odpowiedz

4

GMP jest rzeczywiście szybszy niż BCMath dla bigintegerów, jeśli jest zainstalowany. Jeśli nie masz zainstalowanego ani oprogramowania BCMath, ani GMP, możesz użyć phpseclib's pure-php biginteger implementation.

Ta implementacja używa GMP lub BCmath, jeśli są dostępne, w tej kolejności, a jej własna implementacja wewnętrzna jest inna.

1

Biorąc pytanie tytuł, zakładam, że OP oznaczał ^ jako operację siłową ator i nie PHP XOR operator, chociaż rzeczywiste liczby sprawiają, że wątpię.

ten może zostać osiągnięty za pomocą Brick\Math biblioteki (Disclaimer: autorem jej):

use Brick\Math\BigInteger; 

// Not using BigInteger just yet as the numbers are small, although we could 
$value = 6 * 27 ** 0 
     + 17 * 27 ** 1 
     + 11 * 27 ** 2 
     + 18 * 27 ** 3 
     + 25 * 27 ** 4 
     + 4 * 27 ** 5; 

echo BigInteger::of($value)->power(65537); // 529970661615774734826076722083948398443... 

jestem sparing ci resztę 514566 cyfr :)

+1

Miałem na myśli operatora energii. – Pentium10