Существует ли класс BigInteger в PHP? Если да, то каким образом я могу получить к нему доступ или использовать его?
Есть ли класс BigInteger в PHP?
Ответ 1
Надеемся, полезные ссылки:
EDIT: Math_BigInteger
Пример из http://phpseclib.sourceforge.net/documentation/math.html:
Реализует произвольную арифметическую библиотеку целых чисел. Использует gmp или bcmath, если он доступен, и внутреннюю реализацию, в противном случае.
<?php
include('Math/BigInteger.php');
$a = new Math_BigInteger(2);
$b = new Math_BigInteger(3);
$c = $a->add($b);
echo $c->toString(); // outputs 5
?>
Ответ 2
Несмотря на то, что этот вопрос устарел, он появляется как первый результат, когда Googling для BigInteger PHP
, поэтому для всех, кого это интересует, я открываю библиотеку под названием Brick\Math предлагает классы BigInteger
, BigDecimal
и BigRational
.
Использование
use Brick\Math\BigInteger;
use Brick\Math\RoundingMode;
Дополнение:
echo BigInteger::of('9999999999999999999999999')->plus(1);
// 10000000000000000000000000
Вычитание:
echo BigInteger::of('10000000000000000000000000')->minus(1);
// 9999999999999999999999999
Умножение:
echo BigInteger::of('3333333333333333333333333')->multipliedBy(11);
// 36666666666666666666666663
Раздел:
echo BigInteger::of('1000000000000000000000')->dividedBy(3, RoundingMode::UP);
// 333333333333333333334
Возведение:
echo BigInteger::of(11)->power(50);
// 11739085287969531650666649599035831993898213898723001
Вы можете легко вызвать вызовы методов:
echo BigInteger::of(3)->multipliedBy(7)->minus(1)->dividedBy(10);
Установка
Просто установите с Composer и вы закончите:
composer require brick/math
Библиотека автоматически использует GMP и BCMath, если это возможно, для ускорения вычислений, но также будет работать без них благодаря чистой реализации PHP.