gmp_pow

funkcja

Podnosi dowolnie dużą liczbę całkowitą GMP do potęgi i zwraca wynik jako obiekt GMP.

gmp_pow(GMP|int|string $base, int $exponent): GMP

gmp_pow podnosi $base do potęgi $exponent i zwraca obiekt GMP. Wyniki potęgowania błyskawicznie przekraczają PHP_INT_MAX — już 2^63 nie mieści się w int. GMP radzi sobie z licznikami o dowolnej precyzji, co czyni tę funkcję niezbędną np. przy obliczaniu silni, liczb Fibonacciego czy kluczy kryptograficznych.

<?php
declare(strict_types=1);

$wynik = gmp_pow(2, 100);
echo $wynik; // wynik: 1267650600228229401496703205376

// Obliczanie 50! (silni)
$silnia = gmp_init(1);
for ($i = 2; $i <= 50; $i++) {
    $silnia = gmp_mul($silnia, $i);
}
echo $silnia; // wynik: 30414093201713378043612608166064768844377641568960512000000000000

Podstawa ($base) może być obiektem GMP, liczbą int lub ciągiem znaków — wykładnik ($exponent) musi być nieujemnym int. Gdy potrzebujesz potęgowania z redukcją modulo (kryptografia), użyj gmp_powm() — jest znacznie wydajniejsze niż gmp_mod(gmp_pow(...)).

📘 Naucz się w lekcji →