超高精度大数计算 - BigNumberCalculator

引入

use zxf\Tools\BigNumberCalculator;

加法

// 加法测试: 123456789 + 987654321
BigNumberCalculator::add('123456789', '987654321');

减法

// 减法测试: 987654321 - 123456789
BigNumberCalculator::subtract('987654321', '123456789');

乘法

// 乘法测试: 123456789 * 987654321
BigNumberCalculator::multiply('123456789', '987654321');

除法

// 除法测试: 987654321 / 123456789
BigNumberCalculator::divide('987654321', '123456789')

小数除法

// 小数除法测试: 1 / 3 (精度20位)
BigNumberCalculator::divide('1', '3', 20)

幂运算

// 幂运算测试: 2^100
BigNumberCalculator::power('2', '100')

幂塔(重幂 或 超幂)

幂塔(Power tower),也称为重幂 或者 超幂(a↑↑b) (共b层)
形如 ((2²)²)² 表示为2^2^2^2 也记为 ⁴2 表示 或者2↑↑4 (共4层)
的表达式被称为 指数塔(Exponential tower) 或 幂塔
// 幂塔测试: 2↑↑4 (2^2^2^2)
BigNumberCalculator::tetration('2', 4)

科学计数法

// 科学计数法测试
$num = BigNumberCalculator::power('3', '100');
BigNumberCalculator::toScientificNotation($num, 15);

边界测试

// 边界测试: 0的幂运算
BigNumberCalculator::power('0', '123');

// 边界测试: 1的幂塔
BigNumberCalculator::tetration('1', '100');

错误测试

// 错误处理测试
BigNumberCalculator::analysis("错误测试: 无效输入",
    fn() => BigNumberCalculator::add('123abc', '456'));

输出带调试信息的计算

// 测试用例1: 基本乘法
BigNumberCalculator::analysis("乘法测试: 123456789 * 987654321",
    fn() => BigNumberCalculator::multiply('123456789', '987654321')
);

========================================
测试: 乘法测试: 123456789 * 987654321
结果: 121932631112635269
计算时间: 0.000013
结果长度: 18

性能统计:
内存峰值: 2.00 MB
加法运算: 0, 0.000000
减法运算: 0, 0.000000
乘法运算: 1, 0.000013
除法运算: 0, 0.000000
幂运算: 0, 0.000000
幂塔运算: 0, 0.000000
缓存命中: 0, 未命中: 1
缓存命中率: 0.0%