hpez/php-bignum

PHP 7.2 的一个大数库

v0.5 2019-10-23 18:47 UTC

This package is auto-updated.

Last update: 2024-09-29 04:37:17 UTC


README

PHP 的大数库。

为开发者设置

只需克隆项目,进入项目目录并运行 composer install 即可。另外,为了运行测试,你应该执行 vendor/phpunit/phpunit/phpunit tests/

安装

该软件包可以通过 composer require hpez/php-bignumpackagist 仓库 安装。

用法

<?php

// BigInteger Addition
$bigInt1 = new BigInt('123456')
$bigInt2 = new BigInt('654321');
$bigInt1->add($bigInt2);
echo $bigInt1; // "777777"

// BigFloat Addition
$bigFloat1 = new BigFloat('123456.111');
$bigFloat2 = new BigFloat('654321.22');
$bigFloat1->add($bigFloat2)
echo $bigFloat1; // "777777.331"

// BigInteger Subtraction
$bigInt3 = new BigInt('777777');
$bigInt4 = new BigInt('654321');
$bigInt3->sub($bigInt4);
echo $bigInt3; // "123456"

// BigFloat Subtraction
$bigFloat3 = new BigFloat('123456.111');
$bigFloat4 = new BigFloat('654321.22');
$bigFloat3->sub($bigFloat4);
echo $bigFloat3; // results "530865.109"

// BigInteger Division
$bigInt5 = new BigInt('777777');
$bigInt6 = new BigInt('654321');
$bigInt5->div($bigInt6);
echo $bigInt5; // "1"

// BigFloat Division
$bigFloat5 = new BigFloat('123456.111');
$bigFloat6 = new BigFloat('654321.22');
$bigFloat5->div($bigFloat6);
echo $bigFloat5; // "0.188678"

// BigInteger Multiplication
$bigInt7 = new BigInt('777777');
$bigInt8 = new BigInt('654321');
$bigInt7->multiply($bigInt8);
echo $bigInt7; // "508915824417"

// BigFloat Multiplication
$bigFloat7 = new BigFloat('123456.111');
$bigFloat8 = new BigFloat('654321.22');
$bigFloat7->multiply($bigFloat8);
echo $bigFloat7; // "80779953165.97542"

// BigInteger Modulo
$bigInt9 = new BigInt('777777');
$bigInt10 = new BigInt('654321');
$bigInt9->mod($bigInt10);
echo $bigInt9; // "123456"

// BigInteger Power
$bigInt11 = new BigInt('777777');
$bigInt12 = new BigInt('1');
$bigInt11->pow($bigInt12);
echo $bigInt11; // "777777"

// BigFloat Power
$bigFloat9 = new BigFloat('12345.12345');
$bigInt13 = new BigInt('3');
$bigFloat9->pow($bigInt13);
echo $bigFloat9 // "1881422405168.320420453463625"

// BigInteger Square Root
$bigInt14 = new BigInt('10000');
$bigInt15->sqrt();
echo $bigInt14; // "100"

// BigFloat Square Root
$bigFloat10 = new BigFloat('2');
$bigFloat11->sqrt(7);
echo $bigFloat10; // "1.4142136"

// BigInteger Lesser-Than
$bigInt16 = new BigInt('1234567890');
$bigInt17 = new BigInt('1234567891');
echo $bigInt16->isLesserThan($bigInt17); // True

$bigInt18 = new BigInt('1234567891');
$bigInt19 = new BigInt('1234567891');
echo $bigInt18->isLesserThan($bigInt19); // False

// BigInteger Bigger-Than
$bigInt20 = new BigInt('1234567891');
$bigInt21 = new BigInt('1234567890');
echo $bigInt20->isBiggerThan($bigInt21); // True

$bigInt22 = new BigInt('1234567891');
$bigInt23 = new BigInt('1234567891');
echo $bigInt22->isBiggerThan($bigInt23); // False

路线图

此项目的目标是创建一个完整的大数库,因此除了表中提到的操作外,还应添加其他操作(三角函数等)。

贡献

欢迎以问题或拉取请求的形式提供任何贡献!如果您有任何问题,请随时创建新问题或对现有问题进行评论。