如果你具有数学知识背景,你可能已经意识到PHP中并不具备处理高等数学概念——复杂数字、分数、多项式、统计数据和矩阵——的特殊函数。
但是,这种缺陷可以由PEAR,PHP扩展和应用库来填补,它提供大量处理复杂数学单位的现成数据包。这些数据包为应用程序开发者提供一个稳健、经过良好测试的代码库,同时帮助你节省构造出你自己的数学算法所需的时间和精力。
本文列出开发者在其项目中处理复杂数学问题时特别感兴趣的10个PEAR数据包(表A)。查看并尝试一下——你可能不会知道,你也许会为你当前面对的问题找到解决办法。不过有一个警告:如果你上学时不喜欢数学课,下面的内容可能会让你恢复一些令人不快的回忆。
注:你可以按这里提供的指示,直接从网络上安装PEAR数据包。
表A
类名称 |
说明 |
Math_Complex |
这个类让你对复杂的数(包含实数和虚数的数)执行基本的高级算术运算。它包含一个面向对象的界面,支持对这些数的三角和对数运算。 在对复杂数执行三角、双曲线或指数运算时使用这个类。 |
Math_Fraction |
这个类允许你把分数的分子和分母当作类的自变量,从而生成“分数对象”。它包含分数的加、减、乘、除和计算倒数的方法,还可以比较两个或两个以上的分数,从中找出最大值。 在PHP中需要处理分数值时使用这个类。 |
Math_Derivative |
导数是指某个指定的函数相应其自变量的变化率,它是微积分中最重要的概念之一。这个类提供一个面向对象的框架,找出任何数学表达式在指定水平下的导数。它支持基本运算法则(加、减、乘、除)和一个加速推导的高速缓存。 处理导数时使用这个类。 |
Math_Polynomial |
多项式由几个表达式组成,每个自变量的指数各不相同。这个类提供解决多项式等式所需的各种工具,包括对多项式执行基本算术运算、计算多项式的导数和次数、以及求多项式在自变量取特定值时的值。 使用这个类来简化复杂的多项式等式。 |
Math_Matrix |
这个类提供一个面向对象的框架来完成包含矩阵的算术运算。这时,矩阵由一系列数组表示;这个类对这些数组进行加、减、乘、除;确定数组是否为平方;并计算重要的矩阵值,如行列式和模子。 当你需要处理数字矩阵时使用这个类。 |
Math_Fibonacci |
斐波纳奇序列是一个连接的序列数字,它由一位意大利数学最早发现。这个类提供计算一个或几个序列成员的方法,伪随机数字生成器、视觉艺术和音乐这样的应用程序通常需要完成此类操作。它还可以用来检测某个整数是否属于斐波纳奇序列。 当你需要计算和处理斐波纳奇数字时可使用这个类。 |
Math_Vector |
这个类提供一个处理向量的面向对象的框架。它支持重要的向量计算,如计算向量间的距离(卡笛尔、曼哈顿和棋盘);逆转、转变、缩放和常化向量;以及计算向量的长度和量值。 在二维或三维空间需要执行向量计算时使用这个类。 |
Math_BinaryUtils |
这个类提供一个处理二进制数据的框架,包括在大字节序、小字节序、十进制、整数和十六进制格式之间进行转换;包装和打开选项;以及轻松加减二进制数字的能力。 需要执行二进制数字时使用这个类。 |
Math_Stats |
このクラスは、データ セットに対して統計分析を実行するためのさまざまなユーティリティ関数のセットを提供します。関数には、平均 (標準、四分位、調和、幾何)、中央値、および最頻値の計算、標準差、絶対差、四分位間差の検出、変動係数、生モーメントの計算、分布の歪度および尖度の計算が含まれます。 データ セットに対して基本的な統計分析を迅速に実行する必要がある場合は、このクラスを使用します。 |
Math_Histogram |
このクラスは、数値データのコレクションを分類し、描画します統計分析を行うためのグラフの度数分布プロット。その機能には、「ビン」の定義、ビンへのデータ ポイントの割り当て、2 次元または 3 次元でのデータ セットの分布のヒストグラムの数値的またはグラフィックの生成が含まれます。 このクラスを使用して、データ セットの分布頻度を理解します。 |