简介
与其它开放源码语言(比如 perl 和 python)相比,php 社区缺少强有力的工作来开发数学库。
造成这种状况的一个原因可能是由于已经存在大量成熟的数学工具,这可能阻碍了社区自行开发 php 工具的工作。例如,我曾研究过一个功能强大的工具 s system,它拥有一组令人印象深刻的统计库,专门被设计成用来分析数据集,并且在 1998 年由于其语言设计而获得了 acm 奖。如果 s 或者其开放源码同类 r 仅仅是一个 exec_shell 调用,那么为何还要麻烦用 php 实现相同的统计计算功能呢?有关 s system、它的 acm 奖或 r 的更多信息,请参阅相关参考资料。
难道这不是在浪费开发人员的精力吗?如果开发 php 数学库的动机是出自节省开发人员的精力以及使用最好的工具来完成工作,那么 php 现在的课题是很有意义的。
另一方面,出于教学动机可能会鼓励对 php 数学库的开发。对于大约 10% 的人来说,数学是个值得探索的有趣课题。对于那些同时还熟练应用 php 的人来说,php 数学库的开发可以增强数学学习过程,换句话说,不要只 阅读有关 t 测试的章节,还要 实现一个能计算相应的中间值并用标准格式显示它们的类。
通过指导和训练,我希望证明开发 php 数学库并不是一项很难的任务,它可能代表一项有趣的技术和学习难题。在本文中,我将提供一个 php 数学库示例,名为 simplelinearregression ,它演示了一个可以用来开发 php 数学库的通用方法。让我们从讨论一些通用的原则开始,这些原则指导我开发这个 simplelinearregression 类。
指导原则
我使用了六个通用原则来指导 simplelinearregression 类的开发。
每个分析模型建立一个类。
使用逆向链接来开发类。
预计有大量的 getter。
存储中间结果。
为详细的 api 制定首选项。
尽善尽美并非目标。
让我们更详细地逐条研究这些指导方针。
每个分析模型建立一个类
每种主要的分析测试或过程应当有一个名称与测试或过程名相同的 php 类,这个类包含了输入函数、计算中间值和汇总值的函数和输出函数(将中间值和汇总值用文本或图形格式全部显示在屏幕上)。
使用逆向链接来开发类
在数学编程中,编码的目标通常是分析过程(比如 multipleregression 、 timeseries 或 chisquared )所希望生成的标准输出值。从解决问题的角度出发,这意味着您可以使用逆向链接来开发数学类的方法。
例如,汇总输出屏幕显示了一个或多个汇总统计结果。这些汇总统计结果依赖于中间统计结果的计算,这些中间统计结果又可能会涉及到更深一层的中间统计结果,以此类推。这个基于逆向链接的开发方法导出了下一个原则。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器