kytsirangelos/数学函数

一组基于整数的数学运算(因子、阶乘、素数)的集合,支持XML格式化以展示计算结果。

v1.4.0 2024-02-12 11:36 UTC

This package is auto-updated.

Last update: 2024-09-24 12:03:41 UTC


README

MathFunctions包提供了一套用于执行各种基于整数的数学运算的类。它包括计算因子、阶乘以及识别整数数组中的素数等功能。此外,它还提供了XML格式化功能来展示计算结果。

目录

  1. 需求
  2. 安装
  3. 运行单元测试
  4. 使用方法
  5. 异常
  6. 贡献
  7. 许可

需求

安装

$ composer require ktsirangelos/math-functions

运行单元测试

要为此库运行单元测试

  1. 克隆GitHub仓库
$ git clone https://github.com/ktsirangelos/math-functions.git
  1. 安装依赖项
$ cd math-functions
$ composer install
  1. 执行测试
$ ./vendor/bin/phpunit tests

使用方法

计算因子

要计算整数的正负因子(排除1和本身),请使用calcDivisors()方法

use MathFunctions\IntegerCalculator;

$integerCalculator = new IntegerCalculator();
// Example usage with integer 12
$divisors = $integerCalculator->calcDivisors(12);
// Expected Output: [-6, -4, -3, -2, 2, 3, 4, 6]

计算阶乘

要计算整数的阶乘,请使用calcFactorial()方法

use MathFunctions\IntegerCalculator;

$integerCalculator = new IntegerCalculator();
// Example usage with integer 5
$factorial = $integerCalculator->calcFactorial(5);
// Expected Output: 120

识别素数

要找到整数数组中的素数并以XML格式接收结果,请使用calcPrimeNumbers()方法

use MathFunctions\IntegerCalculator;

$integerCalculator = new IntegerCalculator();
// Example usage with an array of integers
$primeNumbersXML = $integerCalculator->calcPrimeNumbers([2, 3, 4, 5, 6, 7]);
// Expected Output (XML string):
// <primeNumbers amount="4">
//   <result>
//     <number>2</number>
//     <number>3</number>
//     <number>5</number>
//     <number>7</number>
//   </result>
// </primeNumbers>

格式化计算结果

您可以使用toXML()方法将计算结果格式化为XML字符串

use MathFunctions\Utilities\ResultFormatter;

$resultFormatter = new ResultFormatter();
// Example usage with an array of even numbers
$xmlResult = $resultFormatter->toXML('evenNumbers', [2, 4, 6, 8]);
// Expected Output (XML string):
// <evenNumbers amount="4">
//   <result>
//     <number>2</number>
//     <number>4</number>
//     <number>6</number>
//     <number>8</number>
//   </result>
// </evenNumbers>

异常

对于无效输入,函数可能会抛出异常。请确保在您的代码中适当捕获和处理这些异常。

贡献

欢迎贡献!如果您发现任何问题或对改进有建议,请随时打开一个问题或提交一个pull请求。

许可

此包受MIT许可证的许可。有关详细信息,请参阅LICENSE文件。