hpez / php-bignum
PHP 7.2 的一个大数库
v0.5
2019-10-23 18:47 UTC
Requires (Dev)
- phpunit/phpunit: ^8.1@dev
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-bignum 或 packagist 仓库 安装。
用法
<?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
路线图
此项目的目标是创建一个完整的大数库,因此除了表中提到的操作外,还应添加其他操作(三角函数等)。
贡献
欢迎以问题或拉取请求的形式提供任何贡献!如果您有任何问题,请随时创建新问题或对现有问题进行评论。